많은 파일을 쉽게 검색하는 방법이나 여러 폴더에 있는 파일 내에서 검색하는 과제를 탐색하는 방법에 대해 궁금한 적이 있습니까? 이 기사에는 당신이 찾고 있는 답변이 있습니다. 텍스트 검색의 세계로 뛰어들어 C#을 사용하여 다양한 폴더에 있는 다양한 파일에서 다양한 텍스트나 구를 검색하는 방법을 살펴보겠습니다.

파일 및 폴더 전체에서 텍스트를 검색하기 위한 C# API

이제 GroupDocs.Search for .NET API를 활용하여 여러 폴더에 걸쳐 다양한 형식의 파일 내 수많은 텍스트를 탐색해 보겠습니다. 이 라이브러리를 사용하면 Word 문서, 스프레드시트, 프레젠테이션, PDF 파일, 마크업 파일, eBook, 이메일 메시지, One Note 문서 및 ZIP 아카이브와 같은 광범위한 파일 형식의 텍스트를 체계적으로 스캔할 수 있습니다. 지원되는 파일 형식에 대한 자세한 목록은 종합 문서를 참조하세요.

다운로드 섹션에서 DLL 또는 MSI 설치 프로그램을 가져오거나 NuGet을 사용하여 .NET 애플리케이션에 API를 설치할 수 있습니다.

PM> Install-Package GroupDocs.Search

C#을 사용하여 폴더 전체의 파일에서 여러 텍스트 검색

C#을 사용하여 여러 폴더 내의 여러 파일에서 텍스트 검색을 수행하고 발견된 각 문서에 대해 강조 표시된 HTML 출력 파일을 생성하려면 다음 단계를 따르세요.

  • 지정된 인덱스 폴더 경로를 사용하여 Index 개체를 만듭니다.
  • Add 메서드를 사용하여 상위 문서 폴더를 인덱싱합니다.
  • 여러 용어나 구문으로 검색어를 정의하세요.
  • Search 메소드를 사용하여 텍스트 스캔을 실행하고 결과를 저장합니다.
  • 검색 결과를 반복합니다.
    • GetFoundDocument 메서드를 사용하여 발견된 각 문서를 검색합니다.
    • 발견된 문서에 대한 파일 정보를 검색하거나 인쇄합니다.
    • 원하는 형식과 경로에 대해 OutputAdapter를 설정합니다.
    • 문서에 대한 형광펜을 만듭니다.
    • 강조 메서드를 사용하여 검색 결과를 강조 표시하고 HTML 파일로 출력합니다.
// C#을 사용하여 여러 폴더 내에서 다양한 파일 형식의 여러 파일에서 텍스트 검색

// 지정된 폴더에서 색인 생성 및 문서 색인화
Index index = new Index("path/for/indexingFolder");
index.Add("path/parent-folder/");

// 'water' 또는 'non'이라는 단어나 'Lorem ipsum'이라는 문구가 포함된 문서를 검색합니다.
string query = "water OR \"Lorem ipsum\" OR non";
SearchResult result = index.Search(query);

// 결과 인쇄
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount);
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);

    // 검색 결과 강조 표시
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/Highlighted-" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.Highlight(document, highlighter); // Generating HTML formatted text with highlighted occurrences
}

위의 코드를 사용하면 여러 파일에서 특정 텍스트를 찾고 발견된 각 문서에 대해 강조 표시된 HTML 출력 파일을 만들 수 있습니다.

HTML 형식의 강조 표시된 텍스트 검색 결과

텍스트 검색 결과 인쇄

검색어 결과에서 발견된 문서에 대한 정보를 추가로 추출할 수 있습니다.

// 결과 인쇄
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount);
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);

    Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\tField: " + field.FieldName);
        Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);

        // 찾은 용어 인쇄
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
        // 찾은 문구 인쇄하기
        if (field.TermSequences != null)
        {
            for (int k = 0; k < field.TermSequences.Length; k++)
            {
                string sequence = string.Join(" ", field.TermSequences[k]);
                Console.WriteLine("\t\t" + sequence.PadRight(30) + field.TermSequencesOccurrences[k]);
            }
        }
    }
}

다음은 DOCX, PDF 및 TXT 파일에서 얻은 위 검색 결과를 인쇄한 결과입니다.

Documents: 3
Total occurrences: 141
	Document: Lorem ipsum.docx
	Occurrences: 101
		Field: filename
		Occurrences: 101
			lorem ipsum		1
		Field: content
		Occurrences: 101
			non			94
			lorem ipsum		6
	Document: Lorem ipsum.pdf
	Occurrences: 1
		Field: filename
		Occurrences: 1
			lorem ipsum		1
	Document: English.txt
	Occurrences: 39
		Field: content
		Occurrences: 39
			water			39

완전한 코드

다음은 여러 파일과 폴더에서 텍스트 문자열과 구를 집합적으로 검색하는 완전한 C# 코드입니다.

// C#을 사용하여 여러 폴더 내에서 다양한 파일 형식의 여러 파일에서 텍스트 검색

// 지정된 폴더에서 색인 생성 및 문서 색인화
Index index = new Index("path/for/indexingFolder");
index.Add("path/parent-folder/");

// 'water' 또는 'non'이라는 단어나 'Lorem ipsum'이라는 문구가 포함된 문서를 검색합니다.
string query = "water OR \"Lorem ipsum\" OR non";
SearchResult result = index.Search(query);

// 결과 인쇄
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount);
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);

    // 검색 결과 강조 표시
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/Highlighted-" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.Highlight(document, highlighter); // Generating HTML formatted text with highlighted occurrences

    Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\tField: " + field.FieldName);
        Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);

        // 찾은 용어 인쇄
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
        // 찾은 문구 인쇄하기
        if (field.TermSequences != null)
        {
            for (int k = 0; k < field.TermSequences.Length; k++)
            {
                string sequence = string.Join(" ", field.TermSequences[k]);
                Console.WriteLine("\t\t" + sequence.PadRight(30) + field.TermSequencesOccurrences[k]);
            }
        }
    }
}

무료 라이센스 또는 무료 평가판 받기

무료 라이센스

제약 없이 이 라이브러리를 탐색하려면 무료 임시 라이센스를 획득하세요.

무료 시험판

다운로드 섹션에서 무료 평가판을 다운로드할 수 있습니다.

파일 및 폴더 내 검색을 위한 .NET API

결론

이 문서에서는 C#을 사용하여 여러 폴더에 있는 수많은 파일의 다양한 텍스트를 검색하기 위한 텍스트 검색을 조사했습니다. 검색어를 시작으로 여러 파일과 폴더를 탐색하고 각 HTML 파일에서 검색된 단어나 문구를 강조 표시했습니다.

API에 대한 포괄적인 세부 정보를 보려면 독자는 문서를 참조하는 것이 좋습니다.

모든 문의사항이나 추가 토론은 사용 가능한 포럼으로 문의하실 수 있습니다.

또한보십시오