【发布时间】:2010-01-30 09:55:15
【问题描述】:
我在 VB6 中创建了一个应用程序。我必须阅读客户邮件的附件。但附件的名称包含无效字符。我想复制它,但我的应用程序做不到。
如何检查文件名是否包含无效字符?
【问题讨论】:
我在 VB6 中创建了一个应用程序。我必须阅读客户邮件的附件。但附件的名称包含无效字符。我想复制它,但我的应用程序做不到。
如何检查文件名是否包含无效字符?
【问题讨论】:
最明显的事情是简单地用占位符替换无效字符,因此(例如)用“_”替换“:”。 (如果我没有抓住重点,请道歉。)
OT:VB6 环境(编译器等)自 2008 年 4 月以来一直不受支持,我强烈建议使用更新的东西。 (VB6 runtime 仍然支持,will be through the lifetime of Windows 7,但即便如此......)
编辑:回应您的编辑:
Windows 文件名中的无效字符(因为这本质上是一个 Windows 应用程序)是 well-documented。
【讨论】:
如果没有更多关于您如何“阅读附件”的详细信息,很难提供具体的帮助。
您可能会遇到 Unicode BOM 前缀,可能有来自文件名不允许的子集中的字符,或者您可能正在处理控制字符或更可能的 AscW() 值 > 127 的字符,例如外国字母符号等.
您可以通过 API 调用创建具有“Unicode 文件名”的文件,但是将这些符号转换为某种“splat”(如 # 或 _)可能更简单,它们应该可以正常工作。如有必要,您可以使用 AscW(char) 和 Select Case 语句逐个字符地遍历文件名字符串,以识别“坏”字符并替换它们。
【讨论】: