簡體   English   中英

FileSystemObject-不支持的文件名字符

[英]FileSystemObject - Unsupported filename characters

我是否可以使用一個函數來轉換具有良好文件名的狡猾文件名?

我正在處理大量照片,偶爾我的腳本會停止,因為上傳者在文件名中添加了卷曲符號(〜)。 我現在也想知道文件名中是否還有其他錯誤符號,以及如何對其進行轉義。

我正在使用VBScript的FileSystem對象遍歷這些文件,類似於以下內容:

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

您可以使函數返回“清除”文件名,例如:

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"

並用清除后的文件名替換文件名。 當您有兩個僅在特殊字符上唯一的文件時,這會帶來風險。

上面是“白名單”變體,如果您更喜歡“黑名單”版本,則可以將模式替換為[~!@#$%^&()]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM