NTFS ファイル システムでパスの文字数が 255 文字を超えるディープ パスを作成できないのはなぜですか? FAT32の限界みたいだけどNTFSにもあるの?どなたか書類を提出していただけませんか?
どうもありがとう!
260 文字の制限は、ファイル システムの制限ではなく、Win32 API の制限です。Win32 は、MAX_PATH を 260 として定義します。これは、API が FileCreate、FileOpen などの関数 (BCL で .NET によって使用される) に渡されるパスの長さをチェックするために使用するものです。
ただし、Win32 ルールをバイパスして、最大 32K 文字のパスを作成できます。 基本的に、これまで見たことのない "\\?\C:\MyReallyLongPath\File.txt" 構文を使用する必要があります。最後に確認したところ、.NET の File および FileInfo クラスにより、このタイプのパスを使用できませんでしたが、C/C++ からは間違いなく使用できます。詳細については、こちらのリンクをご覧ください。
http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
ウィキペディアより引用
ファイル名は 255 UTF-16 コード ワードに制限されています。特定の名前はボリューム ルート ディレクトリで予約されており、ファイルには使用できません。これらは、$MFT、$MFTMirr、$LogFile、$Volume、$AttrDef などです。(ドット)、$Bitmap、$Boot、$BadClus、$Secure、$Upcase、および $Extend;[3] . (ドット) と $Extend は両方ともディレクトリです。他はファイルです。NT カーネルは、フル パスを 32,767 UTF-16 コード ワードに制限しています。
ドク。個々のパス コンポーネントがその下にある限り、255 バイトよりも長いファイル パスを作成できるはずです。ただし、この動作を得るには、Unicode (W) バージョンのファイル アクセス呼び出しを使用する必要があります。stdio で使用されるものなどの ANSI (A) バイトベースのインターフェイスを使用している場合は、Unicode 以前の古いパス インターフェイスの制限に悩まされることになります。