在C#里获取文件大小最常用的是System.IO命名空间中的FileInfo类。通过构造FileInfo对象并访问其Length属性,就能得到文件的字节数,再按1024进制换算成KB或MB即可。

使用FileInfo获取文件字节数
FileInfo位于System.IO命名空间,创建实例时需要传入文件完整路径。Length属性返回long类型的字节数,如果文件不存在会抛出FileNotFoundException。
using System;
using System.IO;
class Program
{
static void Main()
{
// 文件路径可换成实际存在的文件
string path = @"C:testdemo.txt";
FileInfo fileInfo = new FileInfo(path);
long bytes = fileInfo.Length;
Console.WriteLine("文件字节数:" + bytes);
}
}
将字节转换为KB或MB
磁盘容量通常以1024为进制。1KB等于1024字节,1MB等于1024乘以1024字节。我们可以根据字节大小自动选择合适的单位。
换算方法示例
using System;
class FileSizeHelper
{
// 根据字节数返回带单位的字符串
public static string FormatSize(long bytes)
{
if (bytes < 1024)
{
return bytes + " B";
}
else if (bytes < 1024 * 1024)
{
double kb = bytes / 1024.0;
return kb.ToString("F2") + " KB";
}
else
{
double mb = bytes / (1024.0 * 1024.0);
return mb.ToString("F2") + " MB";
}
}
}
完整调用示例
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:testdemo.txt";
FileInfo fileInfo = new FileInfo(path);
string sizeText = FileSizeHelper.FormatSize(fileInfo.Length);
Console.WriteLine("文件占用空间:" + sizeText);
}
}
注意事项
- 路径应使用绝对路径或相对于程序运行目录的正确相对路径
- 读取前可用File.Exists判断文件是否存在,避免异常
- Length属性返回的是long,大文件换算时注意使用double防止整除误差
通过上述方式,就能在C#中轻松获取文件大小并以KB或MB友好显示。