跳過到頁腳內容
.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

Basics of Directory.GetFiles in C

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(工作原理:開發人員指南):圖 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(工作原理:開發人員指南):圖 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(工作原理:開發人員指南):圖 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(工作原理:開發人員指南):圖 5

解釋

這段程式碼示範如何使用 C# 中的IronPDF為指定目錄中的所有 PDF 檔案新增文字註解。 程式首先使用 Directory.GetFiles 方法從提供的資料夾中檢索所有 PDF 檔案路徑,該方法依賴字串路徑來指定目錄,並支援按檔案副檔名篩選,傳回字串檔案名稱數組,其中包含所有副檔名為".pdf"的 PDF 檔案的路徑。

接下來,程式碼初始化一個尺寸為 200x200 的 PdfDocument 物件 (pdfAppend),儘管這個實例並沒有在循環中直接使用。然後,它建立了一個 TextAnnotation 對象,其座標 (50, 50) 處包含文字"Processed by 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
    }
}
$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 文件。

在本指南中,我們探討如何使用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

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

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me