c # .net의 디렉토리에있는 모든 파일을 반복하는 방법은 무엇입니까?


121

I want to get the files in folder and also in its subfolders. 다음 코드는 하위 폴더의 파일을 가져 오지 않습니다 .The following code does not get the files in its subfolder :

string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");

누구든지 C # .net에서 이것을 구현하는 방법을 알려주세요?


2
나는 항상 MSDN 방법을 선호했습니다. 이 링크 의 맨 아래 에는 콘솔 프로그램 (C #)이 포함 된 재귀 예제가 있습니다.
Justin

1
@Panuvin-참고 : MSDN 코드는 약간 위험합니다. 매우 큰 폴더 및 하위 폴더 콘텐츠 (많은 파일)의 경우 StackOverflow 예외가 발생할 수 있습니다 (재귀 코드로 인해)
Joezer

답변:


216
string[] files = 
    Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);

마지막 매개 변수는 당신이 말하는 것과 정확히 일치합니다. 로 설정 AllDirectories 하위 폴더를 포함한 모든 파일에 대해, 그리고으로 설정 TopDirectoryOnly 만 하위 폴더 주어진 아닌 디렉토리에서 검색 할 경우.

자세한 내용은 MDSN을 참조하십시오. https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx


5
폴더 구조에 루프가 있으면 무한 루프가됩니다. 참조 msdn.microsoft.com/en-us/library/ms143448.aspx
안토니 Wieser에게

중간 매개 변수의 목적은 무엇입니까?
usefulBee 2010 년

2
searchPattern이라고하며 파일이 선택되는 필터입니다. 이 경우 "ProfileHandler.cs"로 끝나는 모든 파일을 선택합니다. 한 번 봐 가지고 MDSN
Migwell

3

아래 코드를 시도하십시오

Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.