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。

4.安裝最新版本的 IronPDF。
或者使用 NuGet Package Manager Console:
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");
Dim pdfFiles() As String = 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);
Dim pdfFiles() As String = 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)}");
}
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

本範例示範如何從目錄載入多個 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

此方法可確保只處理相關檔案,節省時間和計算資源。 例如,您可以使用此方法僅處理最近一週內產生的最新發票或報告。
使用 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!")

這種方法對於建立綜合報告、歸檔多份文件或準備簡報特別有用。 透過自動化此流程,您可以毫不費力地處理大量的檔案集合。
逐步實施
設定專案
程式碼片段:初始化 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
控制台輸出

說明
本代碼示範如何使用 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
}
}
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
檔案處理和 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
結論
將 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。



