3

ファイルの長さ (バイト単位) を調べるには、通常FileInfo.Lengthor System.IO.Stream.Length(違いはありますか?) を使用します。どちらも long 型、つまり System.Int64 であるため、可能な最大値は次のとおりです。

9 223 372 036 854 775 807

現在、NTFS5 や Microsoft の Resilient File System (ReFS​​) などの一部のファイル システムでは、理論的には Int64 の範囲を超える最大ファイル サイズが許可されているようです。このソースによると、ReFS は最大ファイル サイズを 2^64-1 バイトに制限しています。 (読みやすくするため):

18 446 744 073 709 551 615

このような場合、どのようにファイル サイズを決定するのでしょうか (それは仮定の話かもしれませんが)。また、通常の Stream 操作 (読み取り/書き込みメソッドの使用など) に影響を与えますか?

4

1 に答える 1

4

そのような場合、ファイルサイズを決定するにはどうすればよいでしょうか

.NET フレームワークには何も組み込まれていません。ファイルが大きくなると、FileInfo.Lengthとの両方System.IO.Stream.Lengthが例外をスローします。Windows API を直接呼び出すようにフォールバックする必要があります (Windows API が現在これをサポートしている場合)。

于 2013-05-16T10:43:28.273 に答える