.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 套件

    1. 在 NuGet 套件管理器中搜索 IronPDF。

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

  3. 安裝最新版本的 IronPDF。

    或者,使用 NuGet 套件管理器主控台:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
$vbLabelText   $csharpLabel

C# 中 Directory.GetFiles 的基礎知識

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")
$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()
    {
        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);
    }
    }
}
Imports IronPdf
Imports System
Imports System.IO
Friend Class Program
	Shared Sub Main()
		Dim pdfFiles() As String = Directory.GetFiles("C:\Users\kyess\Documents\PDFs", "*.pdf")
	Dim pdfAppend = New PdfDocument(200, 200)
	Dim annotation As New TextAnnotation(0) With {
		.Contents = "Processed by IronPDF",
		.X = 50,
		.Y = 50
	}
	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”文件擴展名的 PDF 文件路徑的字串檔名陣列。

接下來,程式碼初始化了一個 PdfDocument 物件 (pdfAppend),其尺寸為 200x200,雖然這個特定實例並沒有直接在迴圈中使用。然後,它在座標 (10, 10) 位置創建了一個帶有 "Processed by IronPDF" 文字的 TextAnnotation。 此註釋將新增至每個 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並探索其高級功能,您可以查看官方文件,這讓您在購買之前能在自己的項目中測試該程式庫。

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
C# 字串轉換為 Bubble(開發者如何運作)
下一個 >
C# 輸出參數(其工作原理:開發人員指南)