跳至頁尾內容
開發者更新

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

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()
    {
        // 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
$vbLabelText   $csharpLabel

控制台輸出

C# Directory.GetFiles(運作方式:開發人員指南):圖5

說明

此程式碼展示了如何使用IronPDF在C#中對指定目錄中的所有PDF文件新增文字註釋。 程式開始時,使用Directory.GetFiles方法從提供的文件夾中檢索所有PDF文件路徑,該方法依賴字串路徑來指定目錄,支持按文件擴展名篩選,返回包含所有帶有".pdf"擴展名的PDF文件路徑的字串文件名陣列。

接下來,程式碼初始化一個TextAnnotation,其中包含文字"Processed by IronPDF",位置為座標(50,50)。 此註釋將新增到每個PDF文件中。

在foreach迴圈中,程式遍歷pdfFiles陣列中的每個文件路徑。 對於每個文件,它使用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並探索其高級功能,請考慮參考官方文件,讓您可以在自己的專案中測試該程式庫。

常見問題

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 文件時處理錯誤?

通過在 try-catch 塊中包裝操作來處理 PDF 文件處理中的錯誤。這樣可以確保異常被優雅地管理,讓應用程式可以繼續運行而不會因為意外錯誤而崩潰。

在 C# 中使用 PDF 程式庫進行批量處理的範例是什麼?

批處理的一個範例是使用 Directory.GetFiles 檢索 PDF,然後使用 IronPDF 批量合併或註釋它們。這種方法自動化重複的任務,節省時間和精力。

如何使用 .NET 程式庫向 PDF 新增文字註釋?

要使用 IronPDF 向 PDF 新增文字註釋,請建立一個具有指定內容和位置的 TextAnnotation 物件。載入每個 PDF,將註釋新增到其 Annotations 集合中,並保存更新的文件。

如何在 Visual Studio 中通過 NuGet 安裝 PDF 程式庫的步驟?

要通過 NuGet 在 Visual Studio 中安裝 PDF 程式庫,打開您的專案,導航到工具 > NuGet 套件管理器 > 管理方案的 NuGet 套件,搜索 IronPDF 並安裝它。或者,使用 NuGet 套件管理器控制台與命令:Install-Package IronPdf

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

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話