跳至頁尾內容
.NET 幫助

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

C# out 參數。 透過將此功能與 IronPDF 搭配使用,開發人員便可大規模地自動化 PDF 工作流程。 例如,您可以使用 Directory.GetFiles 來找出資料夾中的所有 PDF 檔案,然後再使用 IronPDF 來大量處理這些檔案,以執行合併、新增註解或產生報表等工作。 這樣的組合可以簡化操作,尤其是在處理檔案系統中的許多檔案時。

什麼是 IronPDF?

IronPDF 是一個強大的 .NET 函式庫,提供開發人員與 PDF 檔案無縫接軌的工具。 使用 IronPDF,您可以使用直接、直觀的方法來建立、編輯、合併、分割和處理 PDF。 它包括強大的功能,例如 HTML-to-PDF轉換、進階樣式設定和元資料處理。 對於從事需要 PDF 處理的應用程式的 .NET 開發人員而言,IronPDF 是一種無價的工具,可簡化工作流程並提高生產力。

開始

安裝 IronPDF。

NuGet 套件安裝

首先,透過 NuGet 將 IronPDF 加入您的專案:

1.在 Visual Studio 中開啟您的專案。 2.移至 Tools 功能表,並選擇 NuGet Package Manager > Manage NuGet Packages for Solution。 3.在 NuGet 套件管理器中搜尋 IronPDF。

C# Directory.GetFiles (How It Works: A Guide for Developers):圖 1

4.安裝最新版本的 IronPdf。

或者使用 NuGet Package Manager Console:

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");
$vbLabelText   $csharpLabel

此片段擷取目前目錄中的所有 PDF 檔案。 透過將此方法與 IronPDF 結合,您可以建立一次處理多個檔案的自動化解決方案。 您也可以套用指定的搜尋模式 (定義為字串模式),根據檔案的副檔名或名稱過濾檔案。

您可以透過指定搜尋選項 (例如包含搜尋子目錄) 來進一步精細檔案擷取邏輯:

string[] pdfFiles = Directory.GetFiles("C:\\Documents\\PDFs", "*.pdf", SearchOption.AllDirectories);
string[] pdfFiles = 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)}");
}
$vbLabelText   $csharpLabel

C# Directory.GetFiles (How It Works: A Guide for Developers):圖 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)}");
}
$vbLabelText   $csharpLabel

C# Directory.GetFiles (How It Works: A Guide for Developers):圖 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!");
$vbLabelText   $csharpLabel

C# Directory.GetFiles (How It Works: A Guide for Developers):圖 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);
        }
    }
}
$vbLabelText   $csharpLabel

控制台輸出

C# Directory.GetFiles (How It Works: A Guide for Developers):圖 5

說明

本代碼示範如何使用 C# 中的 IronPDF 為指定目錄中的所有 PDF 檔案新增文字註釋。 程式一開始會使用 Directory.GetFiles 方法從所提供的資料夾中擷取所有 PDF 檔案路徑,此方法依賴字串路徑來指定目錄,並支援依檔案副檔名過濾,會傳回包含所有副檔名為 ".pdf" 的 PDF 檔案路徑的字串檔案名陣列。

接下來,程式碼會初始化一個尺寸為 200x200 的 PdfDocument 物件 (pdfAppend),不過這個特定的實例不會直接用在循環中。然後,程式會建立一個 TextAnnotation 物件,並將文字"Processed by IronPdf"置於座標 (50, 50)。 此註解將被添加到每個 PDF 檔案中。

在 foreach 環路中,程式會遍歷 pdfFiles 陣列中的每個檔案路徑。 對於每個檔案,它會使用 PdfDocument.FromFile(file) 載入 PDF,將先前建立的註解新增至 PDF 的 Annotations 集合,然後再使用 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
    }
}
$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}");
}
$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));

在 C# 中處理大量文件的最佳實踐是什麼?

對於大量檔案的處理,可以使用諸如 Directory.EnumerateFiles 之類的非同步方法來減少檢索時間,從而提高效能。這對於高效處理大型目錄尤其有用。

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

在處理 PDF 檔案時,透過將操作封裝在 try-catch 程式碼區塊中來處理錯誤。這可以確保異常得到妥善處理,使應用程式能夠繼續運行,而不會因意外錯誤而崩潰。

C# 中如何使用 PDF 函式庫進行批次處理?請舉例說明。

批次處理的一個例子是使用 Directory.GetFiles 檢索 PDF 文件,然後使用 IronPDF 批次合併或註釋這些文件。這種方法可以自動執行重複性任務,從而節省時間和精力。

如何使用 .NET 函式庫為 PDF 新增文字註解?

若要使用 IronPDF 為 PDF 新增文字註釋,請建立一個具有指定內容和位置的 TextAnnotation 物件。載入每個 PDF,將註解新增至其 Annotations 集合中,然後儲存更新後的文件。

如何在 Visual Studio 中透過 NuGet 安裝 PDF 程式庫?

若要在 Visual Studio 中透過 NuGet 安裝 PDF 庫,請開啟您的項目,導航至“工具”>“NuGet 套件管理器”>“管理解決方案的 NuGet 套件”,搜尋 IronPDF 並進行安裝。或者,使用 NuGet 套件管理器控制台,並執行以下命令: Install-Package IronPdf

Jacob Mellor,Team Iron 首席技術官
首席技術長

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。