.NET 幫助

C# Directory.GetFiles(工作原理:開發人員指南)

Kannaopat Udonpant
坎納帕特·烏頓潘
2025年2月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並探索進階功能,這 官方文件,讓您能在自己的專案中測試該庫,然後再決定是否購買。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
下一個 >
C# 輸出參數(其工作原理:開發人員指南)