반응형
Directory.GetFiles : 전체 경로가 아닌 파일 이름 만 가져 오는 방법은 무엇입니까?
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]);
반응형
'Program Tip' 카테고리의 다른 글
두 개의 JSON 객체 연결 (0) | 2020.11.19 |
---|---|
문자열의 첫 번째와 마지막 문자를 제거하는 방법은 무엇입니까? (0) | 2020.11.19 |
특정 Dockerfile을 빌드 할 수 없음 (0) | 2020.11.19 |
Node.js와 Twisted의 사용 사례는 무엇입니까? (0) | 2020.11.18 |
RegEx에 넣기 전에 이스케이프해야하는 모든 문자 목록? (0) | 2020.11.18 |