你如何在C#中获得文件大小?

时间:2009-09-04 18:32:11

标签: c# filesize

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

目前我有这个循环

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

这会返回磁盘上的大小或大小吗?

8 个答案:

答案 0 :(得分:304)

如果您已经将文件路径作为输入,那么这就是您需要的代码:

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

答案 1 :(得分:258)

FileInfo.Length将返回文件的长度,以字节为单位(不是磁盘上的大小),所以这就是你要找的东西。

答案 2 :(得分:32)

FileInfo.Length将完成这一操作(根据MSDN,它“[g]表示当前文件的大小,以字节为单位。”)在MSDN上有一个很好的page在公共I / O上任务。

答案 3 :(得分:9)

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

我在Google上搜索的典型内容是: msdn FileInfo

答案 4 :(得分:6)

返回文件内容长度

答案 5 :(得分:3)

如果将文件移动到另一个文件系统(FAT16,NTFS,EXT3等),磁盘上的大小可能会有所不同

正如其他回答者所说,这将为您提供字节大小,而不是磁盘大小。

答案 6 :(得分:2)

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

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

答案 7 :(得分:-30)

我得到File.ReadAllBytes(@"D:\\testPA.txt").Length

的文件大小