C# 使用 FileInfo 类获取文件详细属性信息
在 C# 开发中,经常需要获取本地文件的各种元数据。System.IO 命名空间下的 FileInfo 类提供了便捷的方法来查询文件的详细属性,如文件名、大小及各类时间戳。本文将通过一个具体的 WinForms 示例,展示如何编写代码以获取并显示这些关键信息。
结果与目标
我们的目标是创建一个简单的应用程序,当用户选择任意文件时,程序能自动读取并输出以下核心属性:
- 文件名:文件的原始名称。
- 文件大小:以字节(bytes)为单位。
- 创建时间:文件或目录最初创建的时间戳。
- 最后访问时间:最后一次打开或读取文件的时间。
- 最后写入时间:最后一次修改或保存文件内容的时间。
准备条件
为了实现这一功能,我们需要使用 .NET Framework 或 .NET Core/.NET 5+ 环境,并确保引入了必要的命名空间:
using System.IO;:提供访问文件系统的主要类型。using System.Windows.Forms;:用于构建图形用户界面(如需完整示例)。
真实操作顺序
第1步:初始化文件信息与核心代码逻辑
目的:封装获取文件属性的核心逻辑,以便在不同场景下复用。
入口:新建一个控制台项目或 Windows 窗体应用。
动作:实例化 FileInfo 对象,通过构造函数传入完整的文件路径,然后逐一读取其属性。
重要参数:Path(文件绝对路径)。若路径无效或无权限访问,将抛出异常,需注意捕获。
代码实现:
using System;
using System.IO;
public class FileAttributeReader
{
public static void ShowFileDetails(string filePath)
{
try
{
// 实例化 FileInfo 对象
FileInfo file = new FileInfo(filePath);
// 检查文件是否存在
if (!file.Exists)
{
Console.WriteLine("文件不存在。");
return;
}
// 获取并打印各项属性
Console.WriteLine($"文件名 : {file.Name}");
Console.WriteLine($"文件长度(bytes) : {file.Length}");
Console.WriteLine($"创建时间 : {file.CreationTime}");
Console.WriteLine($"最后访问时间 : {file.LastAccessTime}");
Console.WriteLine($"最后写入时间 : {file.LastWriteTime}");
}
catch (UnauthorizedAccessException)
{
Console.WriteLine("没有权限访问该文件。");
}
catch (IOException ex)
{
Console.WriteLine($"IO错误: {ex.Message}");
}
}
}
第2步:构建交互式界面(WinForms 示例)
目的:通过图形界面直观地展示上述信息,方便用户手动选择文件查看。
入口:拖拽控件至 WinForms 设计器。
动作:
- 添加一个
Button(命名为button1),文本设为“请选择文件”。 - 添加一个
ListBox(命名为listBox1),用于逐行显示属性信息。 - 添加一个
OpenFileDialog(命名为openFileDialog1)。 - 为按钮的
Click事件绑定处理程序。
关键逻辑说明:为了提高界面响应速度,在批量添加项到 ListBox 时,应先调用 BeginUpdate(),处理完毕后调用 EndUpdate(),避免频繁重绘导致卡顿。
完成状态:点击按钮弹出文件选择框,选中文件后,ListBox 中立即更新显示该文件的各项元数据。
完成判断
运行程序后,选择一个已知文件。如果 ListBox 正确显示了该文件的名称、精确的字节数大小以及准确无误的三个时间点(创建、访问、写入),则说明 FileInfo 类的使用已成功实现。
原文有依据的排错
如果在执行过程中遇到错误,请检查以下几点:
- FileNotFoundException:确保提供的路径包含正确的文件名且文件未被移动或删除。
- UnauthorizedAccessException:尝试访问受保护的系统文件或文件夹时可能发生,请以管理员身份运行程序或更改文件权限。
- 性能问题:对于超大规模文件列表的处理,避免在主线程中直接进行大量 UI 更新,建议使用异步编程模式(async/await)。
简要总结
通过本文的示例,我们掌握了如何利用 C# 的 FileInfo 类轻松提取文件的关键元数据。这种方法不仅适用于简单的控制台工具,也能无缝集成到复杂的桌面应用程序中,是处理文件系统任务时的基础且高效的手段。以上就是 C# 获得文件属性信息的详细内容,更多关于 C# 文件 IO 操作的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













