2009-09-04 8 views
154

Ich brauche einen Weg, um die Größe einer Datei mit C#, und nicht die Größe auf der Festplatte zu bekommen. Wie ist das möglich?Wie erhalten Sie die Dateigröße in C#?

Zur Zeit habe ich diese Schleife

foreach (FileInfo file in downloadedMessageInfo.GetFiles()) 
{ 
    //file.Length (will this work) 
} 

Wird dies die Größe oder die Größe auf dem Datenträger zurückgeben?

+0

Verwandte, aber für VB.NET: * [Bestimmung Dateigröße in VB.NET] (http://stackoverflow.com/questions/10175630) *, –

Antwort

162

FileInfo.Length wird die Länge der Datei zurückgeben, in Bytes (nicht Größe auf der Festplatte), also das ist, was Sie suchen, denke ich.

+11

@JL: Allerdings tut die Dokumentation. Sie könnten auch einfach einen einfachen Test machen. – jason

+3

Auch: http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/85bf76ac-a254-41d4-a3d7-e7803c8d9bc3 Dies ist eine Diskussion darüber, wie man "den anderen Wert", was ist Größe auf der Festplatte. –

5

Es gibt die Länge Datei Inhalt der Trick

25

FileInfo.Length tun (pro MSDN es „[g] ets die Größe in Bytes der aktuellen Datei.“) Es gibt eine auf gemeinsame schöne page auf MSDN ist E/A-Aufgaben

7

MSDN FileInfo.Length sagt, dass es "die Größe der aktuellen Datei in Bytes ist."

Meine typische Google-Suche nach so etwas wie dieses: Msdn Fileinfo

3

Größe auf Datenträger könnte anders sein, wenn Sie die Datei in ein anderes Dateisystem (FAT16, NTFS, ext3, etc.) bewegen

Wie andere Beantworter gesagt haben, gibt dies Ihnen die Größe in Bytes, nicht die Größe auf der Festplatte.

184

Wenn Sie bereits einen Dateipfad als Eingabe haben, ist dies der Code, den Sie benötigen:

long length = new System.IO.FileInfo(path).Length; 
-15

i die Größe der Datei zu erhalten mit File.ReadAllBytes(@"D:\\testPA.txt").Length

+2

Wenn die Datei groß ist, dauert es ziemlich Weiß, um ihre Länge zu erhalten. – Grigory

+2

Dieser Code kann sehr gefährlich sein. – Katianie

+1

Dies liest alle Bytes in den Speicher, abhängig von der Datei kann eine Weile dauern und fügen Sie eine Menge Daten in den Speicher .. –

Verwandte Themen