.NET 帮助

C# Directory.GetFiles(工作原理:开发人员指南)

发布 2025年二月19日
分享:

介绍

C# out 参数。 通过将此功能与IronPDF结合使用,开发人员可以大规模自动化 PDF 工作流。 例如,您可以使用 Directory.GetFiles 定位文件夹中的所有 PDF 文件,然后批量处理它们IronPDF用于合并、添加注释或生成报告等任务。 这种组合能够简化操作,特别是在处理文件系统中的许多文件时。

什么是IronPDF?

IronPDF是一个强大的.NET库,它为开发人员提供了与PDF文件无缝工作所需的工具。 使用IronPDF,您可以通过简单直观的方法创建、编辑、合并、拆分和操作PDF。 它包括强大的功能,例如HTML 到 PDF 的转换、高级样式和元数据处理。 对于需要处理 PDF 的应用程序的 .NET 开发人员来说,IronPDF 是一款简化工作流程并提高生产力的宝贵工具。

入门

安装 IronPDF

NuGet 包安装

首先,通过 NuGet 将 IronPDF 添加到您的项目中:

  1. 在 Visual Studio 中打开项目。

  2. 转到工具菜单,选择NuGet 包管理器 > 为解决方案管理 NuGet 包

    1. 在NuGet包管理器中搜索IronPDF。

    C# Directory.GetFiles(原理:开发人员指南):图 1

  3. 安装最新版本的IronPDF。

    或者,使用 NuGet 包管理器控制台:

Install-Package IronPdf
Install-Package IronPdf

C# 中 Directory.GetFiles 的基础知识

Directory.GetFiles 方法是 System.IO 命名空间的一部分,用于从文件系统中检索文件名。 这个方法是 Directory 类的一个公共静态字符串成员,简化了文件路径的访问。 例如:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");

此代码片段检索当前目录中的所有PDF文件。 通过将此方法与IronPDF结合使用,您可以创建用于一次处理多个文件的自动化解决方案。 您还可以应用指定的搜索模式(定义为字符串模式),根据文件扩展名或名称来过滤文件。

您可以通过指定搜索选项(例如,包含搜索子目录)来进一步完善文件检索逻辑:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf", SearchOption.AllDirectories);
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf", SearchOption.AllDirectories);

这确保了嵌套文件夹中的文件也被包含在内,检索每个文件的绝对路径,使该方法适用于各种场景。

实际应用案例

从目录中获取和处理PDF文件

示例:加载所有 PDF 文件以进行处理

使用 Directory.GetFiles,您可以迭代目录中的所有 PDF 文件,并使用 IronPDF 处理它们:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
foreach (string file in pdfFiles)
{
    // Load the PDF with IronPDF
    var pdf = PdfDocument.FromFile(file);
    Console.WriteLine($"Processing file: {Path.GetFileName(file)}");
}
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
foreach (string file in pdfFiles)
{
    // Load the PDF with IronPDF
    var pdf = PdfDocument.FromFile(file);
    Console.WriteLine($"Processing file: {Path.GetFileName(file)}");
}

C# Directory.GetFiles(如何运作:开发人员指南):图2

此示例演示如何从目录中加载多个PDF进行处理。 加载后,您可以执行多种操作,例如提取文本、添加注释或根据其内容生成新的PDF。

使用搜索模式筛选文件

示例:按名称或日期选择PDF

您可以结合使用 Directory.GetFiles 和 LINQ 根据创建或修改日期等条件过滤文件:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
var recentFiles = pdfFiles.Where(file => File.GetLastWriteTime(file) > DateTime.Now.AddDays(-7));
foreach (string file in recentFiles)
{
    Console.WriteLine($"Recent file: {Path.GetFileName(file)}");
}
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
var recentFiles = pdfFiles.Where(file => File.GetLastWriteTime(file) > DateTime.Now.AddDays(-7));
foreach (string file in recentFiles)
{
    Console.WriteLine($"Recent file: {Path.GetFileName(file)}");
}

C# Directory.GetFiles(其工作原理:开发者指南):图3

这种方法确保只有相关文件被处理,从而节省时间和计算资源。 例如,您可以使用此方法仅处理在上周内生成的最新发票或报告。

使用 IronPDF 和 Directory.GetFiles 进行批量操作

示例:合并多个PDF文件

您可以将目录中的多个PDF附加到一个文件中:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
var pdfAppend = new PdfDocument(200, 200);
foreach (string file in pdfFiles)
{
    var pdf = PdfDocument.FromFile(file);
    pdfAppend.AppendPdf(pdf);
}
pdfAppend.SaveAs("LargePdf.pdf");
Console.WriteLine("PDFs Appended successfully!");
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
var pdfAppend = new PdfDocument(200, 200);
foreach (string file in pdfFiles)
{
    var pdf = PdfDocument.FromFile(file);
    pdfAppend.AppendPdf(pdf);
}
pdfAppend.SaveAs("LargePdf.pdf");
Console.WriteLine("PDFs Appended successfully!");

C# Directory.GetFiles(工作原理:开发人员指南):图 4

这种方法尤其适用于创建合并报告、存档多个文档或准备演示文稿。 通过自动化此过程,您可以毫不费力地处理大量文件集合。

逐步实施

设置项目

代码片段:初始化IronPDF并处理PDF文件

以下代码演示了如何将IronPDF与Directory.GetFiles结合使用,以加载和处理PDF文档。

using IronPdf;
using System;
using System.IO;
class Program
{
    static void Main()
    {
        string[] pdfFiles = Directory.GetFiles("C:\\Users\\kyess\\Documents\\PDFs", "*.pdf");
    var pdfAppend = new PdfDocument(200, 200);
    TextAnnotation annotation = new TextAnnotation(0)
    {
            Contents = "Processed by IronPDF",
            X = 50,
            Y = 50,
    };
    foreach (string file in pdfFiles)
    {
        var pdf = PdfDocument.FromFile(file);
            pdf.Annotations.Add(annotation);
            pdf.SaveAs(file);
    }
    }
}
using IronPdf;
using System;
using System.IO;
class Program
{
    static void Main()
    {
        string[] pdfFiles = Directory.GetFiles("C:\\Users\\kyess\\Documents\\PDFs", "*.pdf");
    var pdfAppend = new PdfDocument(200, 200);
    TextAnnotation annotation = new TextAnnotation(0)
    {
            Contents = "Processed by IronPDF",
            X = 50,
            Y = 50,
    };
    foreach (string file in pdfFiles)
    {
        var pdf = PdfDocument.FromFile(file);
            pdf.Annotations.Add(annotation);
            pdf.SaveAs(file);
    }
    }
}

控制台输出

C# Directory.GetFiles(如何运作:开发人员指南):图5

说明

此代码演示了如何使用IronPDF在C#中向指定目录中的所有PDF文件添加文本注释。 该程序首先使用Directory.GetFiles方法从提供的文件夹中检索所有PDF文件路径,该方法依赖于字符串路径来指定目录,并支持按文件扩展名过滤。 返回一个字符串数组,包含所有以“.pdf”文件扩展名的PDF文件的路径。

接下来,代码初始化一个PdfDocument对象(pdfAppend)大小为200x200,尽管此特定实例未直接用于循环中。然后创建一个文本注释,在坐标处放置“Processed by IronPDF”文本。(10, 10). 此注释将添加到每个PDF文件中。

在 foreach 循环中,程序遍历 pdfFiles 数组中的每个文件路径。 对于每个文件,它使用PdfDocument.FromFile加载PDF(文件),将先前创建的注释添加到 PDF 的注释集合中,然后使用 pdf.SaveAs 将更新后的 PDF 保存回其绝对路径。(文件).

此过程确保指定目录中的每个PDF都接收到相同的注释,并带有注释保存。

性能提示和最佳实践

使用 Directory.GetFiles 优化文件检索

使用异步方法,比如 Directory.EnumerateFiles,提高大目录的性能。

高效管理大量文件

将文件分成较小的批次以减少内存消耗:

foreach (var batch in pdfFiles.Batch(10))
{
    foreach (string file in batch)
    {
        var pdf = PdfDocument.FromFile(file);
        // Process PDF
    }
}
foreach (var batch in pdfFiles.Batch(10))
{
    foreach (string file in batch)
    {
        var pdf = PdfDocument.FromFile(file);
        // Process PDF
    }
}

文件处理和PDF生成中的错误处理

将文件处理包装在 try-catch 块中以处理异常:

try
{
    var pdf = PdfDocument.FromFile(file);
    // Process PDF
}
catch (Exception ex)
{
    Console.WriteLine($"Error processing {file}: {ex.Message}");
}
try
{
    var pdf = PdfDocument.FromFile(file);
    // Process PDF
}
catch (Exception ex)
{
    Console.WriteLine($"Error processing {file}: {ex.Message}");
}

结论

将 Directory.GetFiles 的功能与 IronPDF 相结合,可以让开发人员高效地管理和处理大规模的 PDF 文件。 通过这种方法,批处理、合并、过滤和转换PDF等任务变得无缝,大大减少了手动操作并提高了生产力。 通过利用IronPDF的高级功能,包括添加页眉、元数据和样式,开发人员可以根据其需求创建高质量的专业PDF文档。

在整个指南中,我们探讨了如何使用 Directory.GetFiles 与 IronPDF 一起检索和操作 PDF。 从项目设置到实现实际用例,我们涵盖了可以应用于实际场景的基本技术。 无论您是在自动化文档工作流程还是增强.NET应用程序的功能,此组合都提供了一种强大且可扩展的解决方案。

如果您准备深入了解IronPDF并探索高级功能,官方文件,允许您在购买前在自己的项目中测试该库。

乔尔迪·巴尔迪亚

乔尔迪·巴尔迪亚

软件工程师

 LinkedIn |  Website

Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 运用技能时,他会进行游戏编程。作为产品测试、产品开发和研究的负责人之一,Jordi 为持续的产品改进增添了极大的价值。多样化的经验让他充满挑战和参与感,他说这是他在 Iron Software 工作中最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。
下一步 >
C# 输出参数(工作原理:开发者指南)