Cas*_*jne 8 c# asp.net filesystems 64-bit
关于文件夹中文件的最大数量的另一个问题,我注意到了
DirectoryInfo.GetFiles().Length
Run Code Online (Sandbox Code Playgroud)
返回System.In32,但Int32的最大值是
2.147.483.647 (Int32.MaxValue)
Run Code Online (Sandbox Code Playgroud)
在NTFS(许多其他文件系统)上,最大文件数可以远远超过这个.
在NTFS上它是
4.294.967.295 single files in one folder (probably an Uint32)
Run Code Online (Sandbox Code Playgroud)
这引出了一个有趣的问题:
当文件数超过Int32.MaxValue时,是否可以使用.NET框架获取NTFS上文件夹中的文件数量,以优雅和执行的方式?
注意:这不是原因.我知道,这些是很多文件;)
有一个LongLength属性Array,返回长度为a long.无论如何,如果GetFiles返回的不仅仅是Int32.MaxValue项目,那么无论如何你都会遇到问题...就像一个OutOfMemoryException;)
如果您实际上不需要项目数,我建议您使用该EnumerateFiles方法(在4.0中引入).它不会立即获取内存中的所有文件名,而是逐个获取它们
| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |