Directory.GetFiles()에 대한 스택 오버플로에 대한 몇 가지 질문이 있지만 모든 경우에이 파일을 사용하여 특정 확장자를 찾는 방법을 설명합니다 또는 여러 기준을 통해 파일 집합을 가져올 수 있습니다. 하지만 제 경우에는 Directory.GetFiles()에 대한 검색 패턴을 얻습니다.이 패턴은 디렉토리의 모든 파일을 반환하지만 정규식은 지정한 것입니다. 나는 그 차이를 원한다는 것을 선언하지 않는다. 예를 들어, html이 아닌 디렉토리의 모든 파일을 원한다면. 내가 파일의 또 다른 종류의 필터링 할 경우 나중에 내가 코드를 변경해야Directory.GetFiles()를 사용하여 특정 파일 확장명을 제외한 모든 파일 선택
var filteredFiles = Directory
.GetFiles(path, "*.*")
.Where(file => !file.ToLower().EndsWith("html")))
.ToList();
을하지만 이것은 매우 재사용 가능한 해결책이 아니다 : i '를, 통지, m는이 방법으로 그것을 달성 할 수 알고 || Where 조건. 나는 나가 얻고 Directory.GetFiles()에 그것을 통과하고 싶지 않는 파일에서 이루어져있는 정규식을 창조하는 것을 허용하는 무언가를 찾고있다. 그래서, 나중에 더 많은 확장을 위해 필터링하고 싶다면, 그냥 정규식을 변경하는 것입니다. 그래서 기본적으로 그냥 문자열에 정규식 일치를 수행하는 방법을 모르는
// for example a field or property in your class
private HashSet<string> ExtensionBlacklist { get; } =
new HashSet<string>(StringComparer.InvariantCultureIgnoreCase)
{
".html",
".htm"
};
// ...
var filteredFiles = Directory.EnumerateFiles(path, "*.*")
.Where(fn => !ExtensionBlacklist.Contains(System.IO.Path.GetExtension(fn)))
.ToList();
매우 유사한 http://stackoverflow.com/questions/13301053/directory-getfiles-of-certain-extension을 참조하십시오. –