FileSystemObject的 - 不支持的文件名字符(FileSystemObject - U

2019-09-20 16:44发布

有没有我可以使用文件名狡猾的转换具有良好的文件名的功能?

我处理了大量的照片,并且很偶然,我的脚本停止,因为上传者已经把卷曲的符号(〜)的文件名。 我如果有任何其他不良符号是不能在文件名和如何逃脱他们正在现在也想知道。

我通过循环使用VBScript的文件系统对象,类似于以下文件:

For Each File In Files
    If InStr(UCase(File.Name), ".JPG") > 0 Then
        '// do stuff
    End If
Next

Answer 1:

您可以将返回一个“干净”的文件名类似的功能:

function MakeNormal(filename)
    dim re : Set re = new regexp

    re.Pattern = "[^\w :\\\.]"
    re.Global = True

    MakeNormal = re.Replace(filename, "_")

end function

msgbox MakeNormal("C:\Temp\normal filename.txt")
msgbox MakeNormal("C:\Temp\special ~!@#$%^&*() filename.txt")

' returns: "C:\Temp\normal filename.txt" and "C:\Temp\special __________ filename.txt"

并更换与清洗一个文件名。 当你有两个文件,这些文件只有在特殊字符的独特变得危险。

以上是“白名单”的变体,如果你喜欢“黑名单”的版本,可以更换模式类似的东西[~!@#$%^&()]



文章来源: FileSystemObject - Unsupported filename characters