Program Tip

Directory.GetFiles : 전체 경로가 아닌 파일 이름 만 가져 오는 방법은 무엇입니까?

programtip 2020. 11. 19. 21:52
반응형

Directory.GetFiles : 전체 경로가 아닌 파일 이름 만 가져 오는 방법은 무엇입니까?


중복 가능성 :
C #을 사용하여 디렉터리 내에서 파일 이름 만 가져 오는 방법은 무엇입니까?

C #을 사용하여 폴더의 파일 목록을 가져오고 싶습니다.
내 목표:["file1.txt", "file2.txt"]

그래서 이렇게 썼습니다.

string[] files = Directory.GetFiles(dir);

불행히도 다음과 같은 결과가 나타납니다. ["C:\\dir\\file1.txt", "C:\\dir\\file2.txt"]

나중에 원하지 않는 "C : \ dir \"부분을 ​​제거 할 수 있지만 더 우아한 해결책이 있습니까?


이를 위해 사용할 수 있습니다 System.IO.Path.GetFileName.

예 :

string[] files = Directory.GetFiles(dir);
foreach(string file in files)
    Console.WriteLine(Path.GetFileName(file));

을 사용할 FileInfo수는 있지만 이미 사용중인 접근 방식 (파일 경로 검색)보다 훨씬 무겁습니다. 따라서 클래스 GetFiles의 추가 기능이 필요하지 않으면 계속 사용 하는 것이 좋습니다 FileInfo.


시험,

  string[] files =  new DirectoryInfo(dir).GetFiles().Select(o => o.Name).ToArray();

위 줄에서 UnauthorizedAccessException이 발생할 수 있습니다. 이 확인을 처리하려면 아래 링크를 참조하십시오.

LINQ의 C # 핸들 System.UnauthorizedAccessException


FileInfo.Name 속성 사용 살펴보기

뭔가

string[] files = Directory.GetFiles(dir); 

for (int iFile = 0; iFile < files.Length; iFile++)
    string fn = new FileInfo(files[iFile]).Name;

또한 DirectoryInfo 클래스FileInfo 클래스 사용을 살펴보십시오.


파일 이름 만 얻으려면 이것을 사용하십시오.

Path.GetFileName(files[0]);

참고 URL : https://stackoverflow.com/questions/12524398/directory-getfiles-how-to-get-only-filename-not-full-path

반응형