跳過到頁腳內容
.NET幫助

C# Directory.GetFiles(工作方式:開發者指南)

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 包
  3. 在 NuGet 包管理者中搜尋 IronPDF。

C# Directory.GetFiles (它是如何運作的:開發人員指南): 圖 1

  1. 安裝 IronPDF 的最新版本。

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

Install-Package IronPdf

C# 中 Directory.GetFiles 的基礎知識

Directory.GetFiles 方法是 System.IO 命名空間的一部分,用於從文件系統檢索文件名。 此方法是 Directory 類的一個公共靜態字符串成員,簡化了對文件路徑的訪問。 PDF 的創建和生成由 iText 7 支持,而 HTML 到 PDF 的轉換由 pdfHTML 支持。

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf");
Dim pdfFiles() As String = Directory.GetFiles("C:\Documents\PDFs", "*.pdf")
$vbLabelText   $csharpLabel

這段程式碼段檢索當前目錄中的所有 PDF 文件。 通過將此方法與 IronPDF 結合,您可以創建一次處理多個文件的自動化解決方案。 您還可以應用指定的搜索模式,定義為字符串模式,根據文件的擴展名或名稱過濾文件。

您可以進一步優化您的文件檢索邏輯,通過指定搜索選項,例如包括搜索子目錄:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf", SearchOption.AllDirectories);
string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf", SearchOption.AllDirectories);
Dim pdfFiles() As String = Directory.GetFiles("C:\Documents\PDFs", "*.pdf", SearchOption.AllDirectories)
$vbLabelText   $csharpLabel

這確保嵌套文件夾中的文件也被包括在內,檢索每個文件的絕對路徑,並使該方法在各種場景中具有靈活性。

實際應用案例

從目錄中提取和處理 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)}");
}
Dim pdfFiles() As String = Directory.GetFiles("C:\Documents\PDFs", "*.pdf")
For Each file As String In pdfFiles
	' Load the PDF with IronPDF
	Dim pdf = PdfDocument.FromFile(file)
	Console.WriteLine($"Processing file: {Path.GetFileName(file)}")
Next file
$vbLabelText   $csharpLabel

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)}");
}
Dim pdfFiles() As String = Directory.GetFiles("C:\Documents\PDFs", "*.pdf")
Dim recentFiles = pdfFiles.Where(Function(file) File.GetLastWriteTime(file) > DateTime.Now.AddDays(-7))
For Each file As String In recentFiles
	Console.WriteLine($"Recent file: {Path.GetFileName(file)}")
Next file
$vbLabelText   $csharpLabel

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!");
Dim pdfFiles() As String = Directory.GetFiles("C:\Documents\PDFs", "*.pdf")
Dim pdfAppend = New PdfDocument(200, 200)
For Each file As String In pdfFiles
	Dim pdf = PdfDocument.FromFile(file)
	pdfAppend.AppendPdf(pdf)
Next file
pdfAppend.SaveAs("LargePdf.pdf")
Console.WriteLine("PDFs Appended successfully!")
$vbLabelText   $csharpLabel

C# Directory.GetFiles (它是如何運作的:開發人員指南): 圖 4

此方法特別適合創建綜合報告、歸檔多個文件或準備演示文稿。 通過自動化此過程,您可以輕鬆處理大量文件。

逐步實施

設置項目

代碼片段:初始化 IronPDF 並處理 PDF 文件

以下代碼演示了如何將 IronPDF 與 Directory.GetFiles 結合使用以加載和處理 PDF 文件。

using IronPdf;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // Retrieve all PDF file paths from the specified directory
        string[] pdfFiles = Directory.GetFiles("C:\\Users\\kyess\\Documents\\PDFs", "*.pdf");

        // Initialize a PdfDocument
        var pdfAppend = new PdfDocument(200, 200);

        // Create a text annotation to add to each PDF
        TextAnnotation annotation = new TextAnnotation(0)
        {
            Contents = "Processed by IronPDF",
            X = 50,
            Y = 50,
        };

        // Iterate over each file path, load, annotate, and save
        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()
    {
        // Retrieve all PDF file paths from the specified directory
        string[] pdfFiles = Directory.GetFiles("C:\\Users\\kyess\\Documents\\PDFs", "*.pdf");

        // Initialize a PdfDocument
        var pdfAppend = new PdfDocument(200, 200);

        // Create a text annotation to add to each PDF
        TextAnnotation annotation = new TextAnnotation(0)
        {
            Contents = "Processed by IronPDF",
            X = 50,
            Y = 50,
        };

        // Iterate over each file path, load, annotate, and save
        foreach (string file in pdfFiles)
        {
            var pdf = PdfDocument.FromFile(file);
            pdf.Annotations.Add(annotation);
            pdf.SaveAs(file);
        }
    }
}
Imports IronPdf
Imports System
Imports System.IO

Friend Class Program
	Shared Sub Main()
		' Retrieve all PDF file paths from the specified directory
		Dim pdfFiles() As String = Directory.GetFiles("C:\Users\kyess\Documents\PDFs", "*.pdf")

		' Initialize a PdfDocument
		Dim pdfAppend = New PdfDocument(200, 200)

		' Create a text annotation to add to each PDF
		Dim annotation As New TextAnnotation(0) With {
			.Contents = "Processed by IronPDF",
			.X = 50,
			.Y = 50
		}

		' Iterate over each file path, load, annotate, and save
		For Each file As String In pdfFiles
			Dim pdf = PdfDocument.FromFile(file)
			pdf.Annotations.Add(annotation)
			pdf.SaveAs(file)
		Next file
	End Sub
End Class
$vbLabelText   $csharpLabel

控制台輸出

C# Directory.GetFiles (它是如何運作的:開發人員指南): 圖 5

解釋

此代碼演示如何使用 IronPDF 在 C# 中為指定目錄中的所有 PDF 文件添加文本註釋。 程序首先使用 Directory.GetFiles 方法從提供的文件夾中檢索所有 PDF 文件路徑,該方法依賴於一個字符串路徑來指定目錄,並支持按文件擴展名進行過濾,返回包含所有擋有“.pdf”擴展名的字符串文件名陣列。

接下來,代碼初始化一個 PdfDocument 對象 (pdfAppend),尺寸為 200x200,儘管這個特定的例子沒有直接在迴圈中使用。 然後創建一個坐标 (50, 50) 的 TextAnnotation,內容為“由 IronPDF 處理”。 此註釋將被添加到每個 PDF 文件中。

在 foreach 循環中,程序遍歷 pdfFiles 陣列中的每個文件路徑。 對於每個文件,它使用 PdfDocument.FromFile(file) 加載 PDF,將先前創建的註釋添加到 PDF 的註釋集合中,然後使用 pdf.SaveAs(file) 將更新的 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
    }
}
For Each batch In pdfFiles.Batch(10)
	For Each file As String In batch
		Dim pdf = PdfDocument.FromFile(file)
		' Process PDF
	Next file
Next batch
$vbLabelText   $csharpLabel

處理文件和生成 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}");
}
Try
	Dim pdf = PdfDocument.FromFile(file)
	' Process PDF
Catch ex As Exception
	Console.WriteLine($"Error processing {file}: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

結論

Directory.GetFiles 的強大功能與 IronPDF 結合,允許開發人員高效地大規模管理和處理 PDF 文件。 採用這種方法,批量處理、合併、過濾和轉換 PDF 任務變得無縫,顯著降低了人工努力並提高了生產力。 通過利用 IronPDF 的高級功能,包括添加標題、元數據和樣式,開發人員可以創建高質量、專業的 PDF 文件,量身定制滿足其要求。

在本指南中,我們探討了如何使用 Directory.GetFiles 與 IronPDF 一起檢索和操作 PDF。 從設置項目到實施實際應用案例,我們涵蓋了可應用於現實世界場景的基本技術。 無論您是在自動化文件工作流程還是提高 .NET 應用程式的功能,此組合都提供了一個強大且可擴展的解決方案。

如果您準備深入探索 IronPDF 並探索高級功能,考慮參考 官方文檔,讓您可以在自己的專案中測試這個庫。

常見問題解答

C# 中的 Directory.GetFiles 方法如何運作?

C# 中的 Directory.GetFiles 方法是 System.IO 命名空間的一部分,允許開發人員從指定的目錄中檢索文件路徑。它支持搜索模式和選項以包括子目錄,這使得訪問特定文件類型或名稱變得高效。

我如何使用 C# 來自動化 PDF 文件處理?

您可以使用 IronPDF 與 Directory.GetFiles 方法一起,在 C# 中自動化 PDF 文件處理。這讓您能夠在目錄中定位 PDF 文件並自動執行合併、添加註釋或生成報告等任務。

將 Directory.GetFiles 與 PDF 庫結合的好處是什麼?

將 Directory.GetFiles 與像 IronPDF 這樣的 PDF 庫結合使用可以自動化並有效管理 PDF 文件。您可以批量獲取和處理 PDF,進行修改和整合文件,提高生產力並減少手動工作。

如何使用 C# 將多個 PDF 附加到一個文件中?

要將多個 PDF 附加到一個文件中,請使用 Directory.GetFiles 检索目录中的所有 PDF 文件。然後,使用 IronPDF 加載每個 PDF,並將它們附加到單個 PdfDocument 对象中,進而保存為整合的 PDF 文件。

如何用 C# 根據創建日期篩選目錄文件?

您可以使用 LINQ 和 Directory.GetFiles 按創建日期篩選目錄文件。例如,要選擇在過去一週內創建的文件,使用:var recentFiles = pdfFiles.Where(file => File.GetCreationTime(file) > DateTime.Now.AddDays(-7));

處理大量文件的最佳實踐是什麼?

為了處理大量文件,使用異步方法如 Directory.EnumerateFiles 以提高性能並減少檢索時間。在有效管理大目錄中特別有用。

如何在 C# 中處理 PDF 文件處理過程中的錯誤?

在 PDF 文件處理過程中通過將操作包裹在 try-catch 塊中來處理錯誤。這確保異常能夠被優雅地管理,使應用程序能夠繼續運行而不會因意外錯誤而崩潰。

C# 中 PDF 庫批量處理的一個例子是什麼?

批量處理的一個例子是使用 Directory.GetFiles 來檢索 PDF,然後使用 IronPDF 批量合併或註釋它們。這種方法自動化了重複的任務,節省了時間和精力。

如何使用 .NET 庫向 PDF 添加文本註釋?

要使用 IronPDF 向 PDF 添加文本註釋,需創建一個指定內容和位置的 TextAnnotation 對象。加載每個 PDF,把該註釋添加到其註釋集合中,並保存更新後的文檔。

如何在 Visual Studio 中通過 NuGet 安裝 PDF 庫的步驟是什麼?

要在 Visual Studio 中通過 NuGet 安裝 PDF 庫,打開您的項目,導航到工具 > NuGet 套件管理器 > 管理解決方案的 NuGet 套件,搜索 IronPDF,然後安裝它。或者,使用 NuGet 套件管理器控制台輸入命令:Install-Package IronPdf

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。