2013-09-30 60 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