[英]What if DirectoryInfo.GetFiles().Length exceeds Int32.MaxValue?
關於文件夾中文件的最大數量的另一個問題 ,我注意到了
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上文件夾中的文件數量,以優雅和執行的方式?
注意:這不是原因。 我知道,這些是很多文件;)
Array
上有一個LongLength
屬性,它返回長度為long
。 無論如何,如果GetFiles
返回的內容多於Int32.MaxValue
項,那么無論如何都會出現問題...就像OutOfMemoryException
;)
如果您實際上不需要項目數,我建議您使用EnumerateFiles
方法(在4.0中引入)。 它不會立即獲取內存中的所有文件名,而是逐個獲取它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.