C# 如何获得文件大小(以C为单位)?
我需要一种使用C#获取文件大小的方法,而不是磁盘上的大小。这怎么可能 目前我有这个循环C# 如何获得文件大小(以C为单位)?,c#,filesize,C#,Filesize,我需要一种使用C#获取文件大小的方法,而不是磁盘上的大小。这怎么可能 目前我有这个循环 foreach (FileInfo file in downloadedMessageInfo.GetFiles()) { //file.Length (will this work) } 这将返回大小还是磁盘上的大小?FileInfo.Length将返回文件的长度,以字节为单位(而不是磁盘上的大小),因此我认为这就是您要查找的内容。它返回文件内容的长度将起到作用(根据MSDN,它“[g]设置当前文
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
这将返回大小还是磁盘上的大小?
FileInfo.Length
将返回文件的长度,以字节为单位(而不是磁盘上的大小),因此我认为这就是您要查找的内容。它返回文件内容的长度将起到作用(根据MSDN,它“[g]设置当前文件的大小,以字节为单位”。)MSDN上有一个关于常见I/O任务的好消息。说它是“当前文件的大小(以字节为单位)”
我典型的谷歌搜索是:msdn FileInfo如果将文件移动到另一个文件系统(FAT16、NTFS、EXT3等),磁盘上的大小可能会有所不同
正如其他回答者所说,这将提供以字节为单位的大小,而不是磁盘上的大小。如果您已经有一个文件路径作为输入,这是您需要的代码:
long length = new System.IO.FileInfo(path).Length;
FileInfo类的Length属性返回文件的大小(而不是磁盘上的大小)。如果您想要格式化的文件大小(即15KB),而不是可以使用的长字节值,那么我制作的一个包可以为FileInfo类添加更多功能。下面是一个例子:
using CSharpLib;
FileInfo info = new FileInfo("sample.txt");
Console.WriteLine(info.FormatBytes()); // Output: 15 MB
另外:这是关于如何获取“其他值”的讨论,即磁盘上的大小。没有“FileInfo.Length”方法!请记住,您指定了静态方法的调用。真正的答案是
newfileinfo(path).Length
对于批量操作来说可能很重。相关的,但对于VB.NET:,用try/catch块将其包围,并按说明检查所有可能的异常:SecurityException、UnauthorizedAccessException、PathTooLongException、,NotSupportedException和-取决于您的用例-ArgumentNullException和ArgumentException