另一个question关于文件夹中的最大文件数,我注意到了
DirectoryInfo.GetFiles().Length
返回System.In32,但Int32的最大值为
2.147.483.647 (Int32.MaxValue)
在NTFS(许多其他文件系统)上,文件的最大数量可以远远超过它。
在NTFS上它是
4.294.967.295 single files in one folder (probably an Uint32)
这让我想到了一个有趣的问题:
当文件数超过Int32.MaxValue时,是否可以使用.NET框架获取NTFS文件夹中的文件数量?是否优雅且具有表现力?
注意:这不是原因。我知道,这些文件很多;)
答案 0 :(得分:6)
LongLength
上有Array
个属性,其长度为long
。无论如何,如果GetFiles
返回的项目超过Int32.MaxValue
,那么无论如何都会遇到问题...就像OutOfMemoryException
;)
如果您实际上不需要项目数,我建议您使用EnumerateFiles
方法(在4.0中引入)。它不会立即获取内存中的所有文件名,而是逐个获取它们