Windowsが処理できる最長のファイルパスは何ですか?
最大パス長 (MSDNから)
Windows API(次の段落で説明するいくつかの例外はあります)では、パスの最大長はMAX_PATHであり、260文字として定義されます。ローカルパスは、ドライブ文字、コロン、バックスラッシュ、バックスラッシュで区切られたコンポーネント、終端のnull文字の順に構成されています。たとえば、ドライブDの最大パスは "D:\ <256文字のパス文字列> <NUL>"です。 "<NUL>"は、現在のシステムコードページの非表示の終了NULL文字を表します。 (文字<>はここでは視覚的にわかりやすくするために使用されており、有効なパス文字列の一部にすることはできません。)
XPファイルパス-250文字
Vistaファイルパス-260文字
Windowsのクリーンインストールの最長パスXPは152文字です。
Windows Vistaのセミクリーンインストールの最長パスは195文字です。
Windows XPは、255文字までの長さのファイル名を許可します
Windows Vistaでは、260文字までの長いファイル名を使用できます。
「クラシック」の制限は260文字です:drive letter
+ :\
+ 255 characters of filename
+ \
(または丸め)+ null terminator
他の回答で述べたとおり
ただし、実際の内部制限は32767文字です。これは、\\?\
を追加して 完全修飾パス を取得することで実現できます。
Windows APIには、32,767文字の最大合計パス長の拡張パスを許可するUnicodeバージョンも備えた多くの関数があります。このタイプのパスは、バックスラッシュで区切られたコンポーネントで構成され、それぞれが
lpMaximumComponentLength
関数のGetVolumeInformation
パラメーターで返される値までです(この値は通常255文字です)。拡張長パスを指定するには、"\\?\"
接頭辞を使用します。たとえば、"\\?\D:\very long path"
です。
何らかの理由で完全修飾パスを使用できない場合、 subst
/ diskpart
を使用してドライブ文字にマウントすることにより、より深いディレクトリにアクセスできます または junction / symlink を作成してパスを短くします
Windows 10以降、デフォルトではありませんが、MAX_PATH
制限も削除されました
Windows 10バージョン1607以降、
MAX_PATH
の制限が一般的なWin32ファイルおよびディレクトリ関数から削除されました。ただし、新しい動作にオプトインする必要があります。https://docs.Microsoft.com/en-us/windows/desktop/FileIO/naming-a-file