ディスク上のサイズではなく、C# を使用してファイルのサイズを取得する方法が必要です。これはどのように可能ですか?
現在、私はこのループを持っています
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
これはサイズまたはディスク上のサイズを返しますか?
入力としてファイル パスが既にある場合は、次のコードが必要です。
long length = new System.IO.FileInfo(path).Length;
FileInfo.Length
ファイルの長さをバイト単位で返します(ディスク上のサイズではありません)ので、これが探しているものだと思います。
FileInfo.Length
(MSDN によると、「現在のファイルのサイズをバイト単位で取得します。」)一般的な I/O タスクに関する MSDNのすばらしいページがあります。
MSDN FileInfo.Lengthは、「現在のファイルのサイズ (バイト単位)」であると述べています。
このようなものに対する私の典型的なGoogle検索は次のとおりです: msdn FileInfo
FileInfo クラスの Length プロパティは、ファイルのサイズを返します (ディスク上のサイズではありません)。長いバイト値ではなく、フォーマットされたファイル サイズ (つまり 15 KB) が必要な場合は、CSharpLibを使用できます。これは、FileInfo クラスにより多くの機能を追加するために私が作成したパッケージです。次に例を示します。
using CSharpLib;
FileInfo info = new FileInfo("sample.txt");
Console.WriteLine(info.FormatBytes()); // Output: 15 MB
ファイルの内容の長さを返します
ファイルを別のファイルシステム (FAT16、NTFS、EXT3 など) に移動すると、ディスク上のサイズが異なる場合があります。
他の回答者が言ったように、これにより、ディスク上のサイズではなく、バイト単位のサイズが得られます。