Saya perlu cara untuk mendapatkan ukuran file menggunakan C #, dan bukan ukuran pada disk. Bagaimana ini mungkin?
Saat ini saya memiliki loop ini
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
Apakah ini mengembalikan ukuran atau ukuran pada disk?
Jawaban:
FileInfo.Length
akan mengembalikan panjang file, dalam byte (bukan ukuran pada disk), jadi ini yang Anda cari, saya pikir.sumber
Jika Anda sudah memiliki jalur file sebagai input, ini adalah kode yang Anda butuhkan:
sumber
FileInfo.Length
akan melakukan trik (per MSDN, "[g] mencari ukuran, dalam byte, dari file saat ini.") Ada halaman yang bagus di MSDN tentang tugas I / O yang umum.sumber
MSDN FileInfo.Length mengatakan bahwa itu "ukuran file saat ini dalam byte."
Pencarian Google khas saya untuk sesuatu seperti ini adalah: msdn FileInfo
sumber
Ini mengembalikan panjang isi file
sumber
Ukuran pada disk mungkin berbeda, jika Anda memindahkan file ke sistem file lain (FAT16, NTFS, EXT3, dll)
Seperti yang dikatakan penjawab lain, ini akan memberi Anda ukuran dalam byte, bukan ukuran pada disk.
sumber
Properti Panjang kelas FileInfo mengembalikan ukuran file (bukan ukuran pada disk). Jika Anda menginginkan ukuran file yang diformat (yaitu 15 KB) daripada nilai byte yang panjang Anda bisa menggunakan CSharpLib , paket yang saya buat yang menambahkan lebih banyak fungsionalitas ke kelas FileInfo. Ini sebuah contoh:
sumber