VBScript未读取大于260个字符的路径
我应该写一个脚本,给它一个起始文件夹,并在所有文件夹和文件中循环,如果遇到大于250的路径,它会将其写入文本文件。它可以工作,但如果路径大于259个字符,它将不会将路径写入文本文件。有没有一个简单的解决办法。我的脚本在底部。多谢各位VBScript未读取大于260个字符的路径,vbscript,Vbscript,我应该写一个脚本,给它一个起始文件夹,并在所有文件夹和文件中循环,如果遇到大于250的路径,它会将其写入文本文件。它可以工作,但如果路径大于259个字符,它将不会将路径写入文本文件。有没有一个简单的解决办法。我的脚本在底部。多谢各位 Const ForWriting = 2 dim x StartFolder = "C:\Users\Sample\Desktop\Notess\Reports" LogFile = "C:\Users\Sample\Desktop\rand.txt" Set o
Const ForWriting = 2
dim x
StartFolder = "C:\Users\Sample\Desktop\Notess\Reports"
LogFile = "C:\Users\Sample\Desktop\rand.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.OpenTextFile(LogFile, ForWriting, True)
Call CheckFolder(StartFolder)
Set objFSO = Nothing
objLogFile.Close
Sub CheckFolder(Folder)
Set ArrFiles = objFSO.GetFolder(Folder).Files
For Each File In ArrFiles
x=len(file)
IF X > 250 THEN objLogFile.WriteLine (File & ", "& X)
Next
Set ArrSubFolders = objFSO.GetFolder(Folder).SubFolders
For Each SubFolder In ArrSubFolders
call CheckFolder(SubFolder)
Next
End Sub
这很可能是由于Windows中的MAX_PATH变量造成的限制。虽然NTFS允许最多32000个字符的路径,但Windows有一个可爱的变量,许多API使用该变量,该变量设置为256 我的猜测是,尽管FSO很古老,但它不会处理大于259的文件路径(256个字符加上“C:\”中的三个字符)
这很可能是由于Windows中的MAX_PATH变量造成的限制。虽然NTFS允许最多32000个字符的路径,但Windows有一个可爱的变量,许多API使用该变量,该变量设置为256 我的猜测是,尽管FSO很古老,但它不会处理大于259的文件路径(256个字符加上“C:\”中的三个字符)
是的,这是Win32 API造成的限制。到目前为止,我发现解决VBScript问题的唯一可行方法是通过
subst
将父文件夹映射到驱动器号来缩短路径,然后从该驱动器继续。是的,这是Win32 API造成的限制。到目前为止,我发现解决VBScript问题的唯一可行方法是通过subst
将父文件夹映射到驱动器号,然后从该驱动器继续,从而缩短路径。