Durch eine weitere Frage über die maximale Anzahl von Dateien in einer Mappe, bemerkte ich das
%Vor%gibt ein System.In32 zurück, aber der Maximalwert eines Int32 ist
%Vor%Während auf NTFS (vielen anderen Dateisystemen) die maximale Anzahl von Dateien weit darüber hinausgehen kann.
auf NTFS ist es
%Vor%Was mich zu der interessanten Frage führt:
Ist es möglich, die Anzahl der Dateien in einem Ordner auf NTFS mit dem .NET-Framework zu erhalten, wenn die Anzahl der Dateien den Int32.MaxValue auf elegante und leistungsstarke Weise überschreitet?
Hinweis: Dies ist keine Frage des Warum. und ich weiß, das sind viele Dateien;)
Es gibt eine Eigenschaft LongLength
für Array
, die die Länge als long
zurückgibt. Wie auch immer, wenn GetFiles
mehr als Int32.MaxValue
liefert, wirst du trotzdem Probleme haben ... wie zB OutOfMemoryException
;)
Wenn Sie die Anzahl der Elemente nicht wirklich benötigen, sollten Sie stattdessen die Methode EnumerateFiles
verwenden (in 4.0 eingeführt). Es ruft nicht alle Dateinamen auf einmal ab, sondern ruft sie nacheinander ab
Tags und Links c# 64bit asp.net filesystems