반응형
와일드 카드로 여러 파일 삭제
리눅스에서는 쉽지만 Windows에서 C #으로 수행하는 방법을 이해할 수는 없습니다. 와일드 카드와 일치하는 모든 파일을 삭제하고 싶습니다 f*.txt
. 어떻게해야합니까?
다음 DirectoryInfo.EnumerateFiles
기능을 사용할 수 있습니다 .
var dir = new DirectoryInfo(directoryPath);
foreach (var file in dir.EnumerateFiles("f*.txt")) {
file.Delete();
}
(물론 오류 처리를 추가하고 싶을 것입니다.)
나는 이것이 이미 대답되었고 좋은 대답이라는 것을 알고 있지만 .NET 4.0 이상 에는 대안 이 있습니다. Directory.EnumerateFiles()
따라서 다음을 사용하십시오 .
foreach (string f in Directory.EnumerateFiles(myDirectory,"f*.txt"))
{
File.Delete(f);
}
의 단점은 DirectoryInfo.GetFiles()
파일 목록을 반환한다는 것입니다. 시간의 99.9 %가 좋습니다. 단점은 폴더에 수만 개의 파일이 포함되어있는 경우 (드문 경우 임) 매우 느려지고 일치하는 파일을 통해 열거하는 속도가 훨씬 빠르다는 것입니다.
Directory.GetFiles 메서드를 와일드 카드 오버로드와 함께 사용할 수 있습니다 . 패턴과 일치하는 모든 파일 이름을 반환합니다. 그런 다음 이러한 파일을 삭제할 수 있습니다.
이 스레드가 지금은 조금 오래되었다는 점에 감사하지만 linq를 사용하려면
Directory.GetFiles("f:\\TestData", "*.zip", SearchOption.TopDirectoryOnly).ToList().ForEach(f => File.Delete(f));
참고 URL : https://stackoverflow.com/questions/8807209/deleting-multiple-files-with-wildcard
반응형
'programing tip' 카테고리의 다른 글
Windows에서 cygwin을 사용하여 git gui를 시작할 수 없습니다. (0) | 2020.11.14 |
---|---|
단위 테스트를 실행하는 동안 디렉터리를 가져 오는 방법 (0) | 2020.11.14 |
Microsoft SQL Server Management Studio 열기 오류 (0) | 2020.11.13 |
작업에 대한 Android Studio 3.0 실행 실패 : dex를 병합 할 수 없음 (0) | 2020.11.13 |
숫자가 완벽한 제곱인지 확인 (0) | 2020.11.13 |