[C#] 파일 시스템 경로가 주어지면 확장자없이 파일 이름을 추출하는 더 짧은 방법이 있습니까?

WPF C #에서 프로그래밍합니다. 예를 들어 다음과 같은 경로가 있습니다.

C:\Program Files\hello.txt

나는 hello그것을 추출하고 싶습니다 .

경로는 string데이터베이스에서 검색됩니다. 현재 다음 코드를 사용하여 경로 '\'를 나눈 다음 다시 나눕니다 '.'.

string path = "C:\\Program Files\\hello.txt";
string[] pathArr = path.Split('\\');
string[] fileArr = pathArr.Last().Split('.');
string fileName = fileArr.Last().ToString();

작동하지만 더 짧고 똑똑한 솔루션이 있어야한다고 생각합니다. 어떤 생각?



답변


답변


답변

시험

System.IO.Path.GetFileNameWithoutExtension(path); 

데모

string fileName = @"C:\mydir\myfile.ext";
string path = @"C:\mydir\";
string result;

result = Path.GetFileNameWithoutExtension(fileName);
Console.WriteLine("GetFileNameWithoutExtension('{0}') returns '{1}'", 
    fileName, result);

result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    path, result);

// This code produces output similar to the following:
//
// GetFileNameWithoutExtension('C:\mydir\myfile.ext') returns 'myfile'
// GetFileName('C:\mydir\') returns ''

https://msdn.microsoft.com/en-gb/library/system.io.path.getfilenamewithoutextension%28v=vs.80%29.aspx


답변

다음과 같이 Path API를 사용할 수 있습니다 .

 var filenNme = Path.GetFileNameWithoutExtension([File Path]);

추가 정보 : Path.GetFileNameWithoutExtension


답변

var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);

확장명이없는 Path.GetFileName


답변

이 시도:

string fileName = Path.GetFileNameWithoutExtension(@"C:\Program Files\hello.txt");

fileName에 “hello”를 반환합니다.


답변

string Location = "C:\\Program Files\\hello.txt";

string FileName = Location.Substring(Location.LastIndexOf('\\') +
    1);