フッターコンテンツにスキップ
.NETヘルプ

C# Directory.GetFiles(動作のガイド)

C# out パラメーター。 この機能をIronPDFと組み合わせることで、開発者は大規模なPDFワークフローを自動化できます。 たとえば、Directory.GetFiles を使用してフォルダ内のすべてのPDFファイルを見つけ、それらを一括で処理して、結合、注釈の追加、レポートの生成などのタスクをIronPDFで実行できます。 この組み合わせにより、多くのファイルをファイルシステムで扱う際に、操作が円滑に行えます。

IronPDFとは何ですか?

IronPDF は、開発者がPDFファイルをシームレスに操作するためのツールを提供する強力な.NETライブラリです。 IronPDFを使用すると、PDFを作成、編集、結合、分割、および操作を簡単かつ直感的な方法で行うことができます。 これはHTMLからPDFへの変換、高度なスタイリング、メタデータ操作などの強力な機能を備えています。 .NET開発者がPDF処理を必要とするアプリケーションで作業する場合、IronPDFはワークフローを効率化し、生産性を向上させる非常に有用なツールです。

開始方法

IronPDFのインストール

NuGetパッケージのインストール

まず、NuGetを通じてプロジェクトにIronPDFを追加します:

  1. Visual Studioでプロジェクトを開きます。
  2. ツール メニューに移動して、NuGetパッケージマネージャー > ソリューションのNuGetパッケージを管理 を選択します。
  3. NuGetパッケージマネージャーでIronPDFを検索します。

C# Directory.GetFiles (動作ガイド: 開発者向けガイド): 図1

  1. IronPDFの最新バージョンをインストールします。

または、NuGetパッケージマネージャーコンソールを使用します:

Install-Package IronPdf

Directory.GetFilesの基本 (C#)

Directory.GetFiles メソッドはSystem.IO 名前空間の一部であり、ファイルシステムからファイル名を取得するために使用されます。 このメソッドは、Directoryクラスのパブリックスタティック文字列メンバーであり、ファイルパスへのアクセスを簡素化します。 PDFの作成とPDFの生成はiText 7でサポートされているが、HTMLからPDFへの変換はpdfHTMLがサポートしています。

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

このアプローチにより、関連するファイルのみを処理して、時間と計算リソースを節約できます。 たとえば、この方法を使用して、最新の請求書や過去1週間以内に生成されたレポートのみを処理することができます。

IronPDFとDirectory.GetFilesを使ったバッチ操作

例: 複数のPDFの追加

ディレクトリの複数のPDFを1つのファイルに追加できます:

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

説明

このコードは、指定されたディレクトリ内のすべてのPDFファイルにテキスト注釈を追加する方法をC#のIronPDFを使用して示しています。 プログラムは、Directory.GetFiles メソッドを使用して提供されたフォルダからすべてのPDFファイルパスを取得することから始まります。これは、文字列パスに基づいてディレクトリを指定し、ファイル拡張子によるフィルタリングをサポートし、".pdf"拡張子を持つすべてのPDFファイルのパスを含む文字列ファイル名の配列を返します。

次に、コードは、寸法200x200のPdfDocumentオブジェクト(pdfAppend)を初期化しますが、この特定のインスタンスはループ内で直接使用されません。そして、「Processed by IronPDF」というテキストを座標(50, 50)に位置するTextAnnotationを作成します。 この注釈は、それぞれの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
    }
}
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 を一括取得して処理し、変更を適用し、ファイルを統合することで、生産性を高め、手作業を減らします。

複数の PDF を 1 つのドキュメントに追加するには、C# でどのように行うのですか?

複数の PDF を 1 つのドキュメントに追加するには、Directory.GetFiles を使用してディレクトリ内のすべての PDF ファイルを取得します。その後、各 PDF を IronPDF を使用して読み込み、単一の PdfDocument オブジェクトに追加し、統合された PDF ファイルとして保存します。

C# で作成日でディレクトリファイルをフィルターするにはどうすればよいですか?

LINQ と Directory.GetFiles を使用して作成日でディレクトリファイルをフィルターできます。たとえば、最近 1 週間以内に作成されたファイルを選択するには、次のようにします: 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

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。