의 모든 하위 디렉토리를 나열하고 나는 C의 모든 서브 디렉토리를 나열 할 수있는 방법을 예를 들어 디렉토리의 모든 하위 디렉토리를 나열해야하는 방법 :내가 프로젝트에서 일하고 있어요 디렉토리
\
49
A
답변
70
사용 Directory.GetDirectories
을 "your_directory_path"으로 지정된 디렉토리의 서브 디렉토리를 가져옵니다. 결과는 문자열 배열입니다.
var directories = Directory.GetDirectories("your_directory_path");
기본적으로 하위 수준의 하위 수준 만 반환합니다. 모든 재귀 적으로 반환하고 결과를 필터링하는 옵션, documented here이 있으며 Clive의 답변에 표시됩니다. UnauthorizedAccessException
방지
그것은 당신이 당신이 액세스 할 수없는 디렉토리를 치면 당신은 UnauthorizedAccessException
를 얻을 수 있습니다 것을 쉽게 가능합니다.
당신은이 같은 예외 처리하는 자신 만의 방법을 만들어야 할 수도 있습니다 : 다음
public class CustomSearcher
{
public static List<string> GetDirectories(string path, string searchPattern = "*",
SearchOption searchOption = SearchOption.TopDirectoryOnly)
{
if (searchOption == SearchOption.TopDirectoryOnly)
return Directory.GetDirectories(path, searchPattern).ToList();
var directories = new List<string>(GetDirectories(path, searchPattern));
for (var i = 0; i < directories.Count; i++)
directories.AddRange(GetDirectories(directories[i], searchPattern));
return directories;
}
private static List<string> GetDirectories(string path, string searchPattern)
{
try
{
return Directory.GetDirectories(path, searchPattern).ToList();
}
catch (UnauthorizedAccessException)
{
return new List<string>();
}
}
}
그리고 다음과 같이 호출 :
var directories = CustomSearcher.GetDirectories("your_directory_path");
38
쉬운이 같이
string[] folders = System.IO.Directory.GetDirectories(@"C:\My Sample Path\","*", System.IO.SearchOption.AllDirectories);
을
1
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TRIAL
{
public class Class1
{
static void Main(string[] args)
{
string[] fileArray = Directory.GetDirectories("YOUR PATH");
for (int i = 0; i < fileArray.Length; i++)
{
Console.WriteLine(fileArray[i]);
}
Console.ReadLine();
}
}
}
6
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string[] files = Directory.GetFiles(fbd.SelectedPath);
string[] dirs = Directory.GetDirectories(fbd.SelectedPath);
foreach (string item2 in dirs)
{
FileInfo f = new FileInfo(item2);
listBox1.Items.Add(f.Name);
}
foreach (string item in files)
{
FileInfo f = new FileInfo(item);
listBox1.Items.Add(f.Name);
}
+0
목록 상자에 목록을 표시하고 사용자에게 어떤 폴더를 선택하도록 허용 할 경우 (예,이 대답이 작동 함). –
관련 문제
- 1. 내가 프로젝트에서 다음 코드를 일하고 있어요 한
- 2. 내가 같은 일을하는 데 사용 프로젝트에서 일하고 있어요 기본
- 3. 내가 엔티티 프레임 워크와 함께 일하고 있어요 내가 문제가 있어요
- 4. 문자열 전략 패턴 내가 AS3에서 일하고 있어요
- 5. 기본은 내가 레일 2에서 일하고 있어요
- 6. 내가 SQL Server와 함께 일하고 있어요
- 7. 링크는 내가 다음 페이지에서 일하고 있어요 IE6
- 8. 목록 상자 선택이 내가 더 큰 프로젝트 기압에서 일하고 있어요
- 9. 자바 웹 : JSP를 JSF 및 Ajax와 함께 사용하는 방법은 무엇입니까? 내가 JSP와 함께 프로젝트에서 일하고 있어요
- 10. 최대 절전 모드 세션과 내가 연결하기 Hibernate3와 JDBC를 사용하는 프로젝트에서 일하고 있어요 스레드
- 11. /HMAC 내가 가지고 몇 가지 코드로 일하고 있어요
- 12. Nanoc 레이아웃 내가 nanoc 함께 일하고 있어요 규칙
- 13. MVC-단위 테스트 - 내가 MVC 함께 일하고 있어요 ViewEngines
- 14. struct를 nullable로 변환하려면 어떻게해야하나요? 내가 거기에서 일하고 있어요 코드베이스에서
- 15. 내가 방정식과 불평등의 세트로 귀결 프로그래밍 문제에 일하고 있어요 최소값
- 16. 사용자 정의 위젯은 내가 안드로이드 응용 프로그램에서 일하고 있어요 setRequestedViewSize
- 17. 내가 오라클 10g 데이터베이스와 함께 일하고 있어요 PL/SQL
- 18. 내가 일하고 있어요 현재 응용 프로그램의 디버그 부분에 노력하고있어
- 19. 열망로드 내가 유사한 다음에 모델로 일하고 있어요 2.2.2
- 20. 자바 찾아 텍스트에게 내가 안드로이드 응용 프로그램에서 일하고 있어요
- 21. 추진 : 빌드 스키마 드라이버는 내가 jobeet 3 일하고 있어요
- 22. 맥 OS 눈에 내가 떨어져이 지침 일하고 있어요 레오파드
- 23. 니스 내가 XML 조각 함께 일하고 있어요 널
- 24. 결정 교류 # 응용 프로그램 월요일부터, 내가 회사에서 인턴으로 일하고 있어요
- 25. ASP.NET MVC : 내가 멀티 테넌트 응용 프로그램에서 일하고 있어요
- 26. WPF 바인딩 다음은 응용 프로그램의 내가 일하고 있어요 XAML의 일부
- 27. 콜백 정적 멤버 배열 내가 일하고 프로젝트에서 최근
- 28. 나는이 문제에 일하고 있어요 외판원 솔루션
- 29. JQuery와주기 캡션이 사이트에서 일하고 있어요 사업부
- 30. 뭔가 일하고 있어요 상속 된 필드
은 여전히 UnauthorizedAccessException을 던지고 * 나머지 * 폴더를 가져 오지 않을까요? –
@ J.Doe 디렉토리와 모든 하위 디렉토리를 반복적으로 탐색합니다. 'UnauthorizedAccessException'을 던져 버릴 수있는 서브 디렉토리에 접근하면, 예외를 잡아 내고 접근 할 수없는 디렉토리에 대한 빈리스트를 반환한다. 그런 다음 다음 하위 디렉토리로 이동합니다. –