获取超出System.Int64范围的文件大小(理论上可行)

时间:2013-05-16 10:36:52

标签: c# .net stream ntfs system.io.fileinfo

要查找文件的长度(以字节为单位),您通常会使用FileInfo.LengthSystem.IO.Stream.Length(有区别吗?)。两者都是long类型,即System.Int64,因此maximal possible value是:

9 223 372 036 854 775 807

现在看来一些文件系统,如NTFS5或Microsoft的弹性文件系统(ReFS)理论上允许最大文件大小超过Int64范围 - 根据this source,ReFS将最大文件大小限制为2 ^ 64- 1个字节,等于(出于可读性目的):

18 446 744 073 709 551 615

在这种情况下如何确定文件大小 - 无论假设是什么 - 它是否会影响正常的Stream操作(例如使用读/写方法等)?

1 个答案:

答案 0 :(得分:4)

  

在这种情况下如何确定文件大小

.NET框架没有任何内置功能。当文件变大时,FileInfo.LengthSystem.IO.Stream.Length都会抛出异常。您将不得不直接调用Windows API(如果Windows API当前支持此功能)。