[英]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.