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 が表示されます。なんで?

4

1 に答える 1

3

260 文字のパスの最大長に関するWindows の制限に達しています。

リンクされた記事には、最大 (約) 32767 文字の長さの拡張パスを使用するための回避策も記載されています\\?\。ドライブ名の前に追加してください。例えば:

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

その記事にも記載されているように、プログラムで拡張パスを作成できても、Windows シェル (エクスプローラーなど) ではそれらを適切に処理できない場合があります。たとえば、エクスプローラーまたはコマンド プロンプトから長いパス フォルダーを削除しようとすると、 「ソース ファイル名がファイル システムでサポートされているサイズよりも大きくなっています」というエラーが表示される場合があります。

于 2013-09-30T15:10:14.177 に答える