Ich brauche eine Möglichkeit, die Größe einer Datei mit C # zu ermitteln, und nicht die Größe auf der Festplatte. Wie ist das möglich?
Derzeit habe ich diese Schleife
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
Gibt dies die Größe oder die Größe auf der Festplatte zurück?
Antworten:
FileInfo.Length
gibt die Länge der Datei in Bytes zurück (nicht die Größe auf der Festplatte), also ist dies das, wonach Sie suchen, denke ich.quelle
Wenn Sie bereits einen Dateipfad als Eingabe haben, benötigen Sie folgenden Code:
quelle
FileInfo.Length
wird den Trick machen (pro MSDN gibt es "[g] ets die Größe der aktuellen Datei in Bytes.") Es gibt eine schöne Seite über MSDN zu allgemeinen E / A-Aufgaben.quelle
MSDN FileInfo.Length gibt an, dass es "die Größe der aktuellen Datei in Bytes" ist.
Meine typische Google-Suche nach so etwas lautet: msdn FileInfo
quelle
Es gibt die Länge des Dateiinhalts zurück
quelle
Die Größe der Festplatte kann unterschiedlich sein, wenn Sie die Datei in ein anderes Dateisystem verschieben (FAT16, NTFS, EXT3 usw.).
Wie andere Antwortende bereits gesagt haben, erhalten Sie die Größe in Byte und nicht die Größe auf der Festplatte.
quelle
Die Length-Eigenschaft der FileInfo-Klasse gibt die Größe der Datei zurück (nicht die Größe auf der Festplatte). Wenn Sie eine formatierte Dateigröße (dh 15 KB) anstelle eines Long-Byte-Werts wünschen , können Sie CSharpLib verwenden , ein Paket, das ich erstellt habe und das der FileInfo-Klasse mehr Funktionen hinzufügt. Hier ist ein Beispiel:
quelle