Passer au contenu du pied de page
.NET AIDE

C# Directory.GetFiles (Comment ça fonctionne : un guide pour les développeurs)

Paramètre out en C#. En associant cette fonctionnalité avec IronPDF, les développeurs peuvent automatiser les flux de travail PDF à grande échelle. Par exemple, vous pouvez utiliser Directory.GetFiles pour localiser tous les fichiers PDF dans un dossier, puis les traiter en masse en utilisant IronPDF pour des tâches telles que la fusion, l'ajout d'annotations ou la génération de rapports. Cette combinaison permet des opérations rationalisées, notamment lors du traitement de nombreux fichiers dans le système de fichiers.

Qu'est-ce qu'IronPDF ?

IronPDF est une bibliothèque .NET robuste qui fournit aux développeurs les outils pour travailler facilement avec des fichiers PDF. Avec IronPDF, vous pouvez créer, modifier, fusionner, diviser et manipuler des PDF en utilisant des méthodes simples et intuitives. Il inclut des fonctionnalités puissantes telles que la conversion HTML en PDF, un style avancé et la gestion des métadonnées. Pour les développeurs .NET travaillant sur des applications nécessitant le traitement PDF, IronPDF est un outil inestimable qui rationalise les flux de travail et améliore la productivité.

Démarrage

Installer IronPDF

Installation du package NuGet

Pour commencer, ajoutez IronPDF à votre projet via NuGet :

  1. Ouvrez votre projet dans Visual Studio.
  2. Allez dans le menu Outils et sélectionnez Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution.
  3. Recherchez IronPDF dans le gestionnaire de packages NuGet.

C# Directory.GetFiles (Comment ça fonctionne : Un guide pour les développeurs): Figure 1

  1. Installez la dernière version d'IronPDF.

Alternativement, utilisez la console du gestionnaire de packages NuGet :

Install-Package IronPdf

Notions de base de Directory.GetFiles en C

La méthode Directory.GetFiles fait partie de l'espace de noms System.IO et est utilisée pour récupérer les noms de fichiers d'un système de fichiers. Cette méthode, un membre statique public de la classe Directory, simplifie l'accès aux chemins de fichiers. L'extraction de données, comme l'extraction d'images, de tableaux et de texte des documents PDF, est fournie par la bibliothèque pdf2Data.

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

Cet extrait récupère tous les fichiers PDF dans le répertoire courant. En combinant cette méthode avec IronPDF, vous pouvez créer des solutions automatisées pour traiter plusieurs fichiers à la fois. Vous pouvez également appliquer un modèle de recherche spécifié, défini comme un modèle de chaîne, pour filtrer les fichiers en fonction de leurs extensions ou noms.

Vous pouvez affiner davantage votre logique de récupération de fichiers en spécifiant des options de recherche, telles que l'inclusion de sous-répertoires de recherche :

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

Cela garantit que les fichiers dans les dossiers imbriqués sont également inclus, récupérant le chemin absolu de chaque fichier et rendant l'approche polyvalente pour divers scénarios.

Cas d'utilisation pratiques

Récupération et traitement de fichiers PDF à partir d'un répertoire

Exemple : Chargement de tous les fichiers PDF pour traitement

En utilisant Directory.GetFiles, vous pouvez parcourir tous les fichiers PDF dans un répertoire et les traiter avec 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 (Comment ça fonctionne : Un guide pour les développeurs): Figure 2

Cet exemple montre comment charger plusieurs PDFs à partir d'un répertoire pour traitement. Une fois chargés, vous pouvez effectuer diverses opérations telles que l'extraction de texte, l'ajout d'annotations ou la génération de nouveaux PDFs en fonction de leur contenu.

Filtrage de fichiers à l'aide de modèles de recherche

Exemple : Sélection de PDFs par nom ou date

Vous pouvez combiner Directory.GetFiles avec LINQ pour filtrer les fichiers en fonction de critères tels que la date de création ou de modification :

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 (Comment ça fonctionne : Un guide pour les développeurs): Figure 3

Cette approche garantit que seuls les fichiers pertinents sont traités, économisant du temps et des ressources informatiques. Par exemple, vous pourriez utiliser cette méthode pour traiter uniquement les factures ou rapports les plus récents générés au cours de la dernière semaine.

Opérations par lot avec IronPDF et Directory.GetFiles

Exemple : Ajouter plusieurs PDFs

Vous pouvez ajouter plusieurs PDFs d'un répertoire dans un seul fichier :

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 (Comment ça fonctionne : Un guide pour les développeurs): Figure 4

Cette approche est particulièrement utile pour créer des rapports consolidés, archiver plusieurs documents ou préparer des présentations. En automatisant ce processus, vous pouvez gérer de grandes collections de fichiers sans effort.

Mise en œuvre étape par étape

Configuration du projet

Extrait de code : Initialiser IronPDF et travailler avec les fichiers PDF

Le code suivant montre comment IronPDF peut être utilisé aux côtés de Directory.GetFiles pour charger et travailler avec des documents 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

Sortie console

C# Directory.GetFiles (Comment ça fonctionne : Un guide pour les développeurs): Figure 5

Explication

Ce code montre comment ajouter une annotation de texte à tous les fichiers PDF dans un répertoire spécifié en utilisant IronPDF en C#. Le programme commence par récupérer tous les chemins de fichiers PDF du dossier fourni en utilisant la méthode Directory.GetFiles, qui repose sur un chemin de chaîne pour spécifier le répertoire et prend en charge le filtrage par extension de fichier, renvoyant un tableau de noms de fichiers de chaînes contenant les chemins de tous les fichiers PDF avec l'extension ".pdf".

Ensuite, le code initialise un objet PdfDocument (pdfAppend) avec des dimensions 200x200, bien que cette instance spécifique ne soit pas utilisée directement dans la boucle. Il crée ensuite une TextAnnotation avec le texte "Processed by IronPDF" positionné aux coordonnées (50, 50). Cette annotation sera ajoutée à chaque fichier PDF.

Dans la boucle foreach, le programme parcourt chaque chemin de fichier dans le tableau pdfFiles. Pour chaque fichier, il charge le PDF en utilisant PdfDocument.FromFile(file), ajoute l'annotation précédemment créée à la collection d'annotations du PDF, puis enregistre le PDF mis à jour à son chemin absolu à l'aide de pdf.SaveAs(file).

Ce processus garantit que chaque PDF dans le répertoire spécifié reçoit la même annotation et est enregistré avec l'annotation incluse.

Astuces de performance et meilleures pratiques

Optimisation de la récupération de fichiers avec Directory.GetFiles

Utilisez des méthodes asynchrones comme Directory.EnumerateFiles pour de meilleures performances avec de grands répertoires.

Gestion efficace d'un grand nombre de fichiers

Traitez les fichiers par petits lots pour réduire la consommation de mémoire :

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

Gestion des erreurs lors du traitement de fichiers et de la génération de PDF

Enveloppez le traitement des fichiers dans un bloc try-catch pour gérer les exceptions :

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

Conclusion

En combinant la puissance de Directory.GetFiles avec IronPDF, les développeurs peuvent gérer et traiter efficacement les fichiers PDF à grande échelle. Avec cette approche, des tâches telles que le traitement par lots, la fusion, le filtrage et la transformation des PDFs deviennent fluides, réduisant considérablement l'effort manuel et améliorant la productivité. En tirant parti des capacités avancées d'IronPDF, y compris l'ajout d'en-têtes, de métadonnées et de style, les développeurs peuvent créer des documents PDF de haute qualité et professionnels adaptés à leurs besoins.

Tout au long de ce guide, nous avons exploré comment utiliser Directory.GetFiles pour récupérer et manipuler des PDFs avec IronPDF. De la configuration d'un projet à la mise en œuvre de cas pratiques, nous avons couvert des techniques essentielles qui peuvent être appliquées à des scénarios réels. Que vous travailliez sur l'automatisation des flux de documents ou sur l'amélioration des fonctionnalités de vos applications .NET, cette combinaison offre une solution robuste et évolutive.

Si vous êtes prêt à explorer plus en profondeur IronPDF et découvrir des fonctionnalités avancées, envisagez de consulter la documentation officielle, vous permettant de tester la bibliothèque dans vos propres projets.

Questions Fréquemment Posées

Comment fonctionne la méthode Directory.GetFiles en C# ?

La méthode Directory.GetFiles en C# fait partie de l'espace de noms System.IO qui permet aux développeurs de récupérer les chemins de fichiers d'un répertoire spécifié. Elle prend en charge les modèles de recherche et les options pour inclure les sous-répertoires, ce qui la rend efficace pour accéder à des types ou noms de fichiers spécifiques.

Comment puis-je utiliser C# pour automatiser le traitement des fichiers PDF ?

Vous pouvez automatiser le traitement des fichiers PDF en C# en utilisant IronPDF avec la méthode Directory.GetFiles. Cela vous permet de localiser des fichiers PDF dans un répertoire et d'effectuer des tâches comme la fusion, l'ajout d'annotations ou la génération de rapports automatiquement.

Quels sont les avantages de combiner Directory.GetFiles avec une bibliothèque PDF ?

Combiner Directory.GetFiles avec une bibliothèque PDF telle qu'IronPDF permet une gestion automatisée et efficace des documents PDF. Vous pouvez récupérer et traiter des PDF en masse, appliquer des modifications et consolider des fichiers, améliorant ainsi la productivité et réduisant le travail manuel.

Comment puis-je fusionner plusieurs PDF en un seul document en C# ?

Pour fusionner plusieurs PDF en un seul document, utilisez Directory.GetFiles pour récupérer tous les fichiers PDF dans un répertoire. Ensuite, chargez chaque PDF avec IronPDF et fusionnez-les dans un objet PdfDocument unique, qui peut être enregistré comme un fichier PDF consolidé.

Comment puis-je filtrer les fichiers d'un répertoire par date de création en C# ?

Vous pouvez filtrer les fichiers d'un répertoire par date de création en utilisant LINQ avec Directory.GetFiles. Par exemple, pour sélectionner des fichiers créés au cours de la dernière semaine, utilisez : var recentFiles = pdfFiles.Where(file => File.GetCreationTime(file) > DateTime.Now.AddDays(-7));

Quelle est la meilleure pratique pour traiter un grand nombre de fichiers en C# ?

Pour traiter un grand nombre de fichiers, utilisez des méthodes asynchrones comme Directory.EnumerateFiles pour améliorer les performances en réduisant le temps de récupération. Cela est particulièrement utile pour gérer efficacement de grands répertoires.

Comment puis-je gérer les erreurs lors du traitement des fichiers PDF en C# ?

Gérez les erreurs lors du traitement des fichiers PDF en encapsulant les opérations dans un bloc try-catch. Cela garantit que les exceptions sont gérées de manière élégante, permettant à l'application de continuer à fonctionner sans planter en raison d'erreurs inattendues.

Quel est un exemple de traitement par lots avec une bibliothèque PDF en C# ?

Un exemple de traitement par lots consiste à utiliser Directory.GetFiles pour récupérer des PDF, puis à employer IronPDF pour les fusionner ou les annoter en masse. Cette approche automatise les tâches répétitives, économisant temps et efforts.

Comment puis-je ajouter des annotations de texte aux PDF en utilisant une bibliothèque .NET ?

Pour ajouter des annotations de texte aux PDF en utilisant IronPDF, créez un objet TextAnnotation avec un contenu et une position spécifiés. Chargez chaque PDF, ajoutez l'annotation à sa collection Annotations et enregistrez le document mis à jour.

Quelles sont les étapes pour installer une bibliothèque PDF via NuGet dans Visual Studio ?

Pour installer une bibliothèque PDF via NuGet dans Visual Studio, ouvrez votre projet, accédez à Outils > Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution, recherchez IronPDF et installez-le. Alternativement, utilisez la console du gestionnaire de packages NuGet avec la commande : Install-Package IronPdf.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite