반응형
C #을 사용하여 디렉토리 내에서 파일 이름 만 얻는 방법은 무엇입니까?
아래 코드 줄을 사용하면 개별 파일의 전체 경로를 포함하는 문자열 배열을 얻습니다.
private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf");
전체 경로가 아닌 문자열에서만 파일 이름을 검색하는 방법이 있는지 알고 싶습니다.
Path.GetFileName
전체 경로에서 파일 이름을 가져 오는 데 사용할 수 있습니다.
private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf")
.Select(Path.GetFileName)
.ToArray();
편집 : 위의 솔루션은 LINQ를 사용 하므로 최소한 .NET 3.5가 필요합니다. 다음은 이전 버전에서 작동하는 솔루션입니다.
private string[] pdfFiles = GetFileNames("C:\\Documents", "*.pdf");
private static string[] GetFileNames(string path, string filter)
{
string[] files = Directory.GetFiles(path, filter);
for(int i = 0; i < files.Length; i++)
files[i] = Path.GetFileName(files[i]);
return files;
}
방법 Path.GetFileName(yourFileName);
(MSDN) 을 사용 하여 파일 이름 만 가져올 수 있습니다.
DirectoryInfo 및 FileInfo 클래스를 사용할 수 있습니다.
//GetFiles on DirectoryInfo returns a FileInfo object.
var pdfFiles = new DirectoryInfo("C:\\Documents").GetFiles("*.pdf");
//FileInfo has a Name property that only contains the filename part.
var firstPdfFilename = pdfFiles[0].Name;
너무 많은 방법이 있습니다 :)
첫 번째 방법 :
string[] folders = Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly);
string jsonString = JsonConvert.SerializeObject(folders);
두 번째 방법 :
string[] folders = new DirectoryInfo(yourPath).GetDirectories().Select(d => d.Name).ToArray();
세 번째 방법 :
string[] folders =
new DirectoryInfo(yourPath).GetDirectories().Select(delegate(DirectoryInfo di)
{
return di.Name;
}).ToArray();
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GetNameOfFiles
{
public class Program
{
static void Main(string[] args)
{
string[] fileArray = Directory.GetFiles(@"YOUR PATH");
for (int i = 0; i < fileArray.Length; i++)
{
Console.WriteLine(fileArray[i]);
}
Console.ReadLine();
}
}
}
간단히 linq를 사용할 수 있습니다.
Directory.EnumerateFiles(LoanFolder).Select(file => Path.GetFileName(file));
Note: EnumeratesFiles is more efficient compared to Directory.GetFiles as you can start enumerating the collection of names before the whole collection is returned.
string[] fileEntries = Directory.GetFiles(directoryPath);
foreach (var file_name in fileEntries){
string fileName = file_name.Substring(directoryPath.Length + 1);
Console.WriteLine(fileName);
}
참고URL : https://stackoverflow.com/questions/7140081/how-to-get-only-filenames-within-a-directory-using-c
반응형
'Programing' 카테고리의 다른 글
선형 회귀를 분석적으로 풀 수 있는데 왜 경사 하강 법인가 (0) | 2020.11.05 |
---|---|
Apache / PHP에서 세션 파일의 위치 (0) | 2020.11.04 |
인덱스로 숫자가 아닌 객체 속성에 액세스 하시겠습니까? (0) | 2020.11.04 |
선택시 HTML 텍스트 입력에서 파란색 광선 제거 (0) | 2020.11.04 |
첫 번째 행의 셀에 스타일 적용 (0) | 2020.11.04 |