C#获取文件基本信息,文件名称、修改时间、文件路径等

简介: C#获取文件基本信息,文件名称、修改时间、文件路径等

在C#中,我们可以使用System.IO库访问文件系统,以便读取和导出文件信息。我们可以使用类System.IO.DirectoryInfo和System.IO.FileInfo表示文件夹和文件。

以下是实现该目标所需的主要步骤:

1.创建一个新的控制台应用程序或任何其他.NET应用程序。

2.将System.IO库添加到应用程序中,以便我们可以访问文件系统。

using System.IO;

3.声明一个变量以保存文件夹路径。

string folderPath = @"C:\Users\Public\Documents";

在此示例中,我们将使用C:\Users\Public\Documents文件夹,但您可以根据需要更改路径。

4.创建一个类型为DirectoryInfo的对象,以便我们可以访问该文件夹中的文件。

DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);

5.使用GetFiles()方法获取该文件夹中的所有文件并保存到一个名为files的FileInfo数组变量中。

FileInfo[] files = directoryInfo.GetFiles();

现在我们有了代表该文件夹中所有文件的每个FileInfo对象。这些对象包含了我们需要的信息,例如文件名,修改日期和完整路径。

6.创建一个DataTable对象,以便我们可以将文件信息添加到其中,并最终导出到Excel或其他应用程序。

DataTable dtFiles = new DataTable();
dtFiles.Columns.Add("文件名称", typeof(string));
dtFiles.Columns.Add("修改日期", typeof(string));
dtFiles.Columns.Add("路径", typeof(string));

这将创建一个包含“文件名称”,“修改日期”和“路径”三个列的DataTable对象。

7.循环遍历files数组并将每个FileInfo对象的名称,修改日期和完整路径添加到dtFiles中。

foreach (FileInfo file in files)
{
    DataRow dr = dtFiles.NewRow();
    dr["文件名称"] = file.Name;
    dr["修改日期"] = file.LastWriteTime;
    dr["路径"] = file.FullName;
    dtFiles.Rows.Add(dr);
}

8.一旦完成循环,我们现在拥有一个包含所有文件信息的DataTable对象,我们可以将其导出到Excel或其他应用程序。

以下是逐行解释:

第4行获得指定文件夹的所有文件的“FileInfo”对象数组。

第7行创建一个新的DataTable,并添加列标题“文件名称”,“修改日期”和“路径”。

第10-16行,我们使用foreach循环遍历files数组,并将每个FileInfo对象的文件名,修改日期和路径添加到dtFiles对象中的新行。

最终,我们将导出DataTable对象以使其易于阅读和使用。

9.使用以下代码导出DataTable对象 dtFiles:

// 导出数据到Excel。
string fileName = @"文件列表.xlsx";
string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), fileName);
Excel.Application excel = new Excel.Application();
Excel.Workbook workbook = excel.Workbooks.Add();
Excel._Worksheet worksheet = workbook.ActiveSheet;
for (int i = 1; i <= dtFiles.Columns.Count; i++)
{
    worksheet.Cells[1, i] = dtFiles.Columns[i - 1].ColumnName;
}
for (int i = 1; i <= dtFiles.Rows.Count; i++)
{
    for (int j = 1; j <= dtFiles.Columns.Count; j++)
    {
        worksheet.Cells[i + 1, j] = dtFiles.Rows[i - 1][j - 1].ToString();
    }
}
workbook.SaveAs(filePath);
workbook.Close();
excel.Quit();

借助Microsoft Excel的帮助,我们可以轻松地导出DataTable对象到Excel文件中。在此示例中,我们使用微软官方的Interop.Excel库以编程方式打开Excel文件,填充数据并将其保存到用户文档文件夹中。


相关文章
|
1月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
32 1
|
1月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
75 0
|
3月前
|
监控 安全 C#
使用C#如何监控选定文件夹中文件的变动情况?
使用C#如何监控选定文件夹中文件的变动情况?
115 19
|
3月前
|
编译器 C# Windows
C#基础:手动编译一个.cs源代码文件并生成.exe可执行文件
通过上述步骤,应该能够高效准确地编译C#源代码并生成相应的可执行文件。此外,这一过程强调了对命令行编译器的理解,这在调试和自动化编译流程中是非常重要的。
232 2
|
3月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
30 3
|
3月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
3月前
|
C#
C# 写日志文件
C# 写日志文件
42 0
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
188 3
|
6天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
18 3
|
27天前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。