
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を追加します:
- Visual Studioでプロジェクトを開きます。
- ツール メニューに移動して、NuGetパッケージマネージャー > ソリューションのNuGetパッケージを管理 を選択します。
- NuGetパッケージマネージャーでIronPDFを検索します。

- IronPDFの最新バージョンをインストールします。
または、NuGetパッケージマネージャーコンソールを使用します:
Basics of Directory.GetFiles in C#
Directory.GetFiles メソッドは System.IO 名前空間の一部であり、ファイルシステムからファイル名を取得するために使用されます。 このメソッドは、Directoryクラスのパブリックスタティック文字列メンバーであり、ファイルパスへのアクセスを簡素化します。 例えば:
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);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)}");
}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)}");
}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
このアプローチにより、関連するファイルのみを処理して、時間と計算リソースを節約できます。 たとえば、この方法を使用して、最新の請求書や過去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!");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);
}
}
}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コンソール出力

説明
このコードは、指定されたディレクトリ内のすべてのPDFファイルにテキスト注釈を追加する方法をC#のIronPDFを使用して示しています。 プログラムは、Directory.GetFiles メソッドを使用して、指定されたフォルダからすべてのPDFファイルパスを取得することから開始します。これはディレクトリを指定する文字列パスに依存し、ファイル拡張子によるフィルタリングをサポートし、".pdf"拡張子を持つすべてのPDFファイルのパスを含む文字列配列を返します。
次に、コードは次元200x200のpdfAppend)を初期化しますが、この特定のインスタンスはループ内で直接使用されません。その後、座標(50, 50)に"Processed by IronPDF"というテキストを配置したTextAnnotationを作成します。 この注釈は、それぞれのPDFファイルに追加されます。
foreachループで、プログラムはpdfFiles配列内の各ファイルパスを繰り返し処理します。 各ファイルについて、pdf.SaveAs(file)を使用して絶対パスに保存します。
このプロセスにより、指定されたディレクトリ内のすべてのPDFに同じ注釈が追加され、注釈が含まれた状態で保存されることが保証されます。
パフォーマンスのヒントとベストプラクティス
Directory.GetFilesでのファイル取得の最適化
大規模なディレクトリでは、Directory.EnumerateFilesのような非同期メソッドを使用してパフォーマンスを向上させてください。
多数のファイルを効率的に管理する
小さなバッチでファイルを処理してメモリ消費を減らします:
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
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ドキュメントを、開発者がニーズに合わせて作成できます。
このガイドを通じて、Directory.GetFilesを使ってIronPDFでPDFを取得し操作する方法を探りました。 プロジェクトの設定から実用的な使用例の実装まで、現実のシナリオに適用できる重要な技術をカバーしました。 ドキュメントワークフローの自動化や.NETアプリケーションの機能向上を目指す場合、この組み合わせは強力でスケーラブルなソリューションを提供します。
IronPDFにさらに深く入り、高度な機能を探る準備が整ったら、公式ドキュメントを参考にして、ライブラリを実際のプロジェクトで試すことを検討してください。

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。
関連する記事


