可以在.net中读取的文件的最大大小

时间:2010-01-16 22:58:20

标签: c# .net

.net Framework中可以读取的文件的最大大小是什么?

这是长(Int64)max,因为它是所有读者中Seek方法中偏移的类型?

4 个答案:

答案 0 :(得分:8)

我认为答案是语言规范的“未定义”。

搜索偏移量基于原点,因此您可以查找长度最大的文件。你只是无法从文件开始寻求。此外,文件对象不必支持寻求读取。 FileStream.Seek Documentation

中有更多信息

也许其他人知道的更好,但我不相信定义了最大文件大小。您将受到从文件系统读取的数据的限制(例如,内存不足以存储它等)

答案 1 :(得分:4)

它仅受文件系统的约束。 Seek()不是必需的函数,C / C ++程序员长时间处理它们的fseek()的2 GB限制。大量文件访问是顺序的。然而,.NET版本可以顺利运行一段时间,但是,当前的Windows文件系统(NTFS版本6)将文件大小限制为17,592,185,978,880字节,远远超过2 ^ 63 - 1。

答案 2 :(得分:1)

这是我的猜测,但还有其他限制,例如文件系统强加的文件大小。在NTFS上它是2TB,但在FAT32上它是4GB减去2字节,例如。

答案 3 :(得分:1)

理论上的最大值(不考虑文件系统限制)是Int64.MaxValue,正如您所猜测的那样。我不确定如果您读取的文件超过该文件会发生什么,但似乎不太可能;)