2013-09-30 3 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 script_CReating Папка внутри папки

+1

Что содержит ChildFolderPath? И может быть, вы достигли предела длины для путей? Я имею в виду: ChildFolderPath получает «\ LargeFolder » приложенное все время, которое будет безопасно достигать предела длины в определенный момент времени, гарантировано. В зависимости от используемой файловой системы она может достигать 128. – TheBlastOne

+1

У ChildFolder есть путь к папке на рабочем столе. И да. Я хочу добавить папки внутри папок, чтобы имя файла в последних папка становится больше, чем 255. – abhinov

+0

Если OP не может служить настоящим хорошим объяснением, почему он должен «испортить вещи», я предлагаю, чтобы мы не продвигали поведение скрипт-кидди. –

ответ

3

Вы попадаете в Windows limitation on maximum path length, что составляет 260 символов.

В связанной статье также упоминается обходной путь для использования длинномерных путей длиной до (приблизительно) 32767 символов - добавьте \\?\ перед именем диска. Например:

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

Как уже отмечался в этой статье, даже если вы можете создать пути расширенной длины программны, оболочка для Windows (например, Explorer) может быть не в состоянии справиться с ними должным образом. Например, вы можете получить ошибку "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

Смежные вопросы