我需要一种方法来获得一个文件的大小使用c#,而不是磁盘上的大小。这怎么可能呢?

目前我有这个循环

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

这将返回大小还是磁盘上的大小?


当前回答

FileInfo。Length将返回文件的长度,单位是字节(而不是磁盘上的大小),所以我认为这就是您正在寻找的。

其他回答

它返回文件内容的长度

MSDN FileInfo。Length表示它是“当前文件的大小(以字节为单位)”。

我典型的谷歌搜索是:msdn FileInfo

FileInfo类的Length属性返回文件的大小(不是磁盘上的大小)。如果你想要一个格式化的文件大小(例如15 KB)而不是一个长字节值,你可以使用CSharpLib,这是一个我为FileInfo类添加了更多功能的包。这里有一个例子:

using CSharpLib;
FileInfo info = new FileInfo("sample.txt");
Console.WriteLine(info.FormatBytes());  // Output: 15 MB

如果你已经有一个文件路径作为输入,这是你需要的代码:

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

FileInfo。Length将返回文件的长度,单位是字节(而不是磁盘上的大小),所以我认为这就是您正在寻找的。