C# 使用 FileInfo 类获取文件详细属性信息

Ryan
Ryan
发布时间:2026-10-14| 3人浏览过
原创

在 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 设计器。

动作:

  1. 添加一个 Button(命名为 button1),文本设为“请选择文件”。
  2. 添加一个 ListBox(命名为 listBox1),用于逐行显示属性信息。
  3. 添加一个 OpenFileDialog(命名为 openFileDialog1)。
  4. 为按钮的 Click 事件绑定处理程序。

关键逻辑说明:为了提高界面响应速度,在批量添加项到 ListBox 时,应先调用 BeginUpdate(),处理完毕后调用 EndUpdate(),避免频繁重绘导致卡顿。

完成状态:点击按钮弹出文件选择框,选中文件后,ListBox 中立即更新显示该文件的各项元数据。

完成判断

运行程序后,选择一个已知文件。如果 ListBox 正确显示了该文件的名称、精确的字节数大小以及准确无误的三个时间点(创建、访问、写入),则说明 FileInfo 类的使用已成功实现。

原文有依据的排错

如果在执行过程中遇到错误,请检查以下几点:

  • FileNotFoundException:确保提供的路径包含正确的文件名且文件未被移动或删除。
  • UnauthorizedAccessException:尝试访问受保护的系统文件或文件夹时可能发生,请以管理员身份运行程序或更改文件权限。
  • 性能问题:对于超大规模文件列表的处理,避免在主线程中直接进行大量 UI 更新,建议使用异步编程模式(async/await)。

简要总结

通过本文的示例,我们掌握了如何利用 C# 的 FileInfo 类轻松提取文件的关键元数据。这种方法不仅适用于简单的控制台工具,也能无缝集成到复杂的桌面应用程序中,是处理文件系统任务时的基础且高效的手段。以上就是 C# 获得文件属性信息的详细内容,更多关于 C# 文件 IO 操作的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。