[C#] 파일 이름 문자열에서 파일 확장자 제거

라는 문자열 "abc.txt"이 있으면 하위 문자열을 얻는 빠른 방법이 "abc"있습니까?

나는 fileName.IndexOf('.')파일 이름이 될 수 있기 때문에 할 수 없으며 "abc.123.txt"분명히 확장자 (예 :)를 제거하고 싶습니다 "abc.123".



답변

Path.GetFileNameWithoutExtension방법은 이름에서 알 수 있듯이 확장명없이 인수로 전달한 파일 이름을 제공합니다.


답변

이 목적을 위해 프레임 워크에는 확장을 제외하고 전체 경로를 유지하는 방법이 있습니다.

System.IO.Path.ChangeExtension(path, null);

파일 이름 만 필요한 경우

System.IO.Path.GetFileNameWithoutExtension(path);


답변

당신이 사용할 수있는

string extension = System.IO.Path.GetExtension(filename);

그런 다음 확장 프로그램을 수동으로 제거하십시오.

string result = filename.Substring(0, filename.Length - extension.Length);


답변

String.LastIndexOf가 작동합니다.

string fileName= "abc.123.txt";
int fileExtPos = fileName.LastIndexOf(".");
if (fileExtPos >= 0 )
 fileName= fileName.Substring(0, fileExtPos);


답변

확장명없이 전체 경로를 만들려면 다음과 같이 할 수 있습니다.

Path.Combine( Path.GetDirectoryName(fullPath), Path.GetFileNameWithoutExtension(fullPath))

하지만 더 간단한 방법을 찾고 있습니다. 누구든지 어떤 아이디어가 있습니까?


답변

아래 코드를 사용했습니다.

string fileName = "C:\file.docx";
MessageBox.Show(Path.Combine(Path.GetDirectoryName(fileName),Path.GetFileNameWithoutExtension(fileName)));

출력은

C : \ 파일


답변

문자열 연산을 사용하려면 문자 또는 하위 문자열의 마지막 항목을 검색하는 lastIndexOf () 함수를 사용할 수 있습니다. Java에는 수많은 문자열 함수가 있습니다.