푸터 콘텐츠로 바로가기
.NET 도움말

C# Directory.GetFiles (개발자를 위한 작동 원리 안내서)

C# out 파라미터. IronPDF와 이 기능을 결합하면 개발자는 대규모로 PDF 워크플로를 자동화할 수 있습니다. 예를 들어, Directory.GetFiles를 사용하여 폴더 내 모든 PDF 파일의 위치를 찾고, IronPDF를 활용하여 병합, 주석 추가, 보고서 생성 등의 작업으로 일괄 처리할 수 있습니다. 이 조합은 파일 시스템에서 많은 파일을 다룰 때 특히 간소화된 운영을 가능하게 합니다.

IronPDF 란 무엇인가요?

IronPDF는 개발자에게 PDF 파일과 원활하게 작업할 수 있는 도구를 제공하는 견고한 .NET 라이브러리입니다. IronPDF를 사용하면 간단하고 직관적인 방법을 통해 PDF를 생성, 편집, 병합, 분할 및 조작할 수 있습니다. HTML to PDF 변환, 고급 스타일링 및 메타데이터 처리와 같은 강력한 기능을 포함합니다. .NET 개발자가 PDF 처리가 필요한 애플리케이션을 개발할 때 IronPDF는 워크플로를 간소화하고 생산성을 향상시키는 귀중한 도구입니다.

시작하기

IronPDF 설치 중

NuGet Install-Package

시작하려면 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

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

설명

이 코드는 C#의 IronPDF를 사용하여 지정된 디렉토리 내의 모든 PDF 파일에 텍스트 주석을 추가하는 방법을 보여줍니다. 프로그램은 Directory.GetFiles 메서드를 사용하여 제공된 폴더에서 모든 PDF 파일 경로를 검색하며, 문자열 경로를 사용하여 디렉터리를 지정하고 파일 확장자로 필터링을 지원하여 ".pdf" 확장자를 가진 모든 PDF 파일 경로를 포함한 문자열 파일 이름 배열을 반환합니다.

다음으로, 코드는 크기 200x200인 PdfDocument 객체(pdfAppend)를 초기화하며, 이 특정 인스턴스는 루프에서 직접 사용되지는 않습니다. 그런 다음 좌표 (50, 50)에 위치한 "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 문서를 만들 수 있습니다.

이 가이드 전반에서 우리는 IronPDF를 사용하여 Directory.GetFiles로 PDF를 검색하고 조작하는 방법을 탐구했습니다. 프로젝트 설정에서 실용적인 사용 사례 구현까지 우리는 실제 시나리오에 적용할 수 있는 필수 기술을 다루었습니다. .NET 애플리케이션의 기능을 자동화하거나 향상시키는 작업을 하든 간에, 이 조합은 강력하고 확장 가능한 솔루션을 제공합니다.

IronPDF에 대해 더 깊이 들어가고 고급 기능을 탐색할 준비가 되었다면, 공식 문서를 참조하여 자신만의 프로젝트에서 라이브러리를 테스트해 보세요.

자주 묻는 질문

Directory.GetFiles 메서드는 C#에서 어떻게 작동합니까?

C#의 Directory.GetFiles 메서드는 System.IO 네임스페이스의 일부로, 개발자가 지정된 디렉토리에서 파일 경로를 검색할 수 있게 해줍니다. 검색 패턴과 옵션을 지원하여 특정 파일 유형이나 이름에 효율적으로 액세스할 수 있습니다.

C#을 사용하여 PDF 파일 처리를 자동화할 수 있습니까?

Directory.GetFiles 메서드와 함께 IronPDF를 사용하여 C#에서 PDF 파일 처리를 자동화할 수 있습니다. 이를 통해 디렉토리에서 PDF 파일을 찾아 병합, 주석 추가 또는 보고서 생성을 자동으로 수행할 수 있습니다.

Directory.GetFiles를 PDF 라이브러리와 결합하면 어떤 이점이 있습니까?

IronPDF와 같은 PDF 라이브러리와 Directory.GetFiles를 결합하면 PDF 문서를 자동으로 효율적으로 관리할 수 있습니다. 대량의 PDF를 가져오고 처리하며, 수정사항을 적용하고 파일을 통합하여 생산성을 높이고 수작업을 줄일 수 있습니다.

C#을 사용하여 여러 PDF를 하나의 문서로 합치려면 어떻게 해야 합니까?

여러 PDF를 하나의 문서로 합치려면, 디렉토리에서 모든 PDF 파일을 검색하기 위해 Directory.GetFiles를 사용하세요. 그런 다음 IronPDF로 각 PDF를 로드하고 하나의 PdfDocument 객체로 합쳐 저장할 수 있습니다.

C#에서 생성 날짜로 디렉토리 파일을 필터링하려면 어떻게 해야 하나요?

LINQ를 사용하여 Directory.GetFiles로 생성 날짜로 디렉토리 파일을 필터링할 수 있습니다. 예를 들어 지난 주에 생성된 파일을 선택하려면: 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 명령어를 사용할 수 있습니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다.

그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해