IT

폴더에서 특정을 가진 파일 찾기

lottoking 2020. 9. 11. 08:16
반응형

폴더에서 특정을 가진 파일 찾기


폴더 경로 (예 :)가 주어 C:\Random Folder지면 어떻게 어떤 파일을 가진 파일을 txt있습니까? *.txt디렉토리에서 검색 해야 생각하지만 처음 에이 검색을 어떻게 시작 해야하는지 잘 모르겠습니다.


System.IO.Directory클래스와 정적 메소드를 사용 GetFiles합니다. 경로 및 검색 패턴을 허용하는 지원이 있습니다. 예 :

 string[] files = System.IO.Directory.GetFiles(path, "*.txt");

디렉토리 클래스를 사용할 수 있습니다.

 Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)

사실 꽤 신뢰할 수 있습니다. 와 함께 클래스를 사용할 수 있습니다 . LINQ를 사용하면 더욱 편안하게 (LINQ) :System.IO.DirectorySystem.IO.Path

var allFilenames = Directory.EnumerateFiles(path).Select(p => Path.GetFileName(p));

// Get all filenames that have a .txt extension, excluding the extension
var candidates = allFilenames.Where(fn => Path.GetExtension(fn) == ".txt")
                             .Select(fn => Path.GetFileNameWithoutExtension(fn));

물론이 기술에도 많은 변형이 있습니다. 필터가 더 간단하면 다른 답변 중 일부가 더 간단합니다. 이 지연된 열거 (중요한 경우)와 더 많은 코드를 하나 서 더 유연한 필터링의 이점을 가지고 있습니다.


아래 메소드는 특정 파일을 가진 파일 만 반환합니다 (예 : .txt1이 아닌 .txt 파일).

public static IEnumerable<string> GetFilesByExtension(string directoryPath, string extension, SearchOption searchOption)
    {
        return
            Directory.EnumerateFiles(directoryPath, "*" + extension, searchOption)
                .Where(x => string.Equals(Path.GetExtension(x), extension, StringComparison.InvariantCultureIgnoreCase));
    }

내 이해에 따라 두 가지 방법으로 수행 할 수 있습니다.

1) Getfiles 메소드와 함께 디렉토리 클래스를 사용하고 모든 파일을 탐색하여 필요한 것을 확인할 수 있습니다.

Directory.GetFiles ( "your_folder_path) [i] .Contains ("*. txt ")

2) 파일 경로를 사용하여 확인하는 GetExtension 메서드와 함께 경로 클래스를 사용할 수 있으며, 파일 경로를 획득 할 수있는 파일 경로를 가져와 확인에 사용할 수있는 파일 경로를 사용하여 확인합니다.

Path.GetExtension (your_file_path) .Equals ( ". json")

참고 : 두 논리 모두 루핑 조건을 대신합니다.


모든 유형의 확장 파일이있는 읽기 파일 에이 코드를 사용하십시오.

string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");

참고 URL : https://stackoverflow.com/questions/3152157/find-a-file-with-a-certain-extension-in-folder

반응형