2013-09-30 88 views
0
For i = 1 To 40 Step 1 

    ChildFolderPath = ChildFolderPath & "\" & "LargeFolder" & i 
    If fso.FolderExists(ChildFolderPath) Then 
    MsgBox ("Folder Exists") 
    else 
    fso.CreateFolder (ChildFolderPath) 
    End If 
Next 

但創建21個文件夾後,我得到錯誤53,「找不到文件路徑」。 爲什麼?VB腳本_CReating文件夾裏面的文件夾

+1

ChildFolderPath最初包含什麼?你能達到路徑的長度限制嗎?我的意思是:ChildFolderPath一直附加「\ LargeFolder 」,可以保證在某個時間點安全地達到長度限制。根據您使用的文件系統,它可能低至128. – TheBlastOne

+1

ChildFolder在桌面上有一個文件夾的路徑。並且是的..我想在文件夾內添加文件夾,以便上次的文件的文件名文件夾變得大於255. – abhinov

+0

除非OP能夠提供一個真正的好解釋,爲什麼他需要「搞砸」我建議我們不提倡腳本kiddy行爲。 –

回答

3

您點擊Windows limitation on maximum path length,這是260個字符。

鏈接的文章還提到了一種解決方法,使用擴展長度達到(大約)32767個字符長的路徑 - 在驅動器名稱前添加\\?\。例如:

ChildFolderPath = "\\?\C:\MyFolder" 

由於還指出,文章中,儘管可以通過編程方式創建擴展長度路徑,Windows外殼(例如資源管理器)可能無法妥善處理。例如,嘗試從資源管理器或命令提示符刪除長路徑文件夾時,可能會出現"The source file name(s) are larger than is supported by the file system"錯誤。

+0

是的,我用這個「\\?\」並能夠創建文件夾,但現在我想在最後一個文件夾中有一些文件,我一直無法弄清楚。 – abhinov

+0

@ user2784074:您需要使用[fso.CreateTextFile](http://msdn.microsoft.com/en-us/library/5t9b5c0c.aspx)。 – Helen

+0

+1引入這個奇怪的前綴,我錯過了直到現在。 -1爲未指定的要求提供解決方案。 :-) – TheBlastOne