파일 이름 문자열에서 파일 확장자 제거
만약 제가 이 말을 한다면요'"abc.txt"
substring을 빠르게 취득할 수 있는 방법이 있습니까?"abc"
?
나는 할 수 없다fileName.IndexOf('.')
파일명은 다음과 같을 수 있습니다."abc.123.txt"
내선번호를 없애고 싶다(즉, 내선번호가 없다)."abc.123"
).
이 메서드는 이름에서 알 수 있듯이 확장자를 사용하지 않고 인수로 전달되는 파일 이름을 제공합니다.
이 목적을 위한 프레임워크에는 확장을 제외한 전체 경로를 유지하는 메서드가 있습니다.
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:\파일
UWP API를 요청하지 않을 수도 있습니다.하지만 UWP에서는file.DisplayName
는 확장자가 없는 이름입니다.다른 사람들에게 유용한 희망.
String 연산을 사용하는 경우 lastIndexOf() 함수를 사용하면 문자 또는 하위 문자열의 마지막 항목을 검색할 수 있습니다.Java에는 수많은 문자열 함수가 있습니다.
오래된 질문인 건 알지만Path.GetFileNameWithoutExtension
더 좋고 깔끔한 선택일 수도 있습니다.하지만 개인적으로 저는 이 두 가지 방법을 프로젝트에 추가했고 그것들을 공유하고 싶었습니다.범위와 인덱스를 사용하기 때문에 C# 8.0이 필요합니다.
public static string RemoveExtension(this string file) => ReplaceExtension(file, null);
public static string ReplaceExtension(this string file, string extension)
{
var split = file.Split('.');
if (string.IsNullOrEmpty(extension))
return string.Join(".", split[..^1]);
split[^1] = extension;
return string.Join(".", split);
}
ReadOnlySpan<char> filename = "abc.def.ghi.txt";
var fileNameWithoutExtension = RemoveFileExtension(filename); //abc.def.ghi
string RemoveFileExtension(ReadOnlySpan<char> path)
{
var lastPeriod = path.LastIndexOf('.');
return (lastPeriod < 0 ? path : path[..lastPeriod]).ToString();
}
/// <summary>
/// Get the extension from the given filename
/// </summary>
/// <param name="fileName">the given filename ie:abc.123.txt</param>
/// <returns>the extension ie:txt</returns>
public static string GetFileExtension(this string fileName)
{
string ext = string.Empty;
int fileExtPos = fileName.LastIndexOf(".", StringComparison.Ordinal);
if (fileExtPos >= 0)
ext = fileName.Substring(fileExtPos, fileName.Length - fileExtPos);
return ext;
}
private void btnfilebrowse_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
//dlg.ShowDialog();
dlg.Filter = "CSV files (*.csv)|*.csv|XML files (*.xml)|*.xml";
if (dlg.ShowDialog() == DialogResult.OK)
{
string fileName;
fileName = dlg.FileName;
string filecopy;
filecopy = dlg.FileName;
filecopy = Path.GetFileName(filecopy);
string strFilename;
strFilename = filecopy;
strFilename = strFilename.Substring(0, strFilename.LastIndexOf('.'));
//fileName = Path.GetFileName(fileName);
txtfilepath.Text = strFilename;
string filedest = System.IO.Path.GetFullPath(".\\Excels_Read\\'"+txtfilepath.Text+"'.csv");
// filedest = "C:\\Users\\adm\\Documents\\Visual Studio 2010\\Projects\\ConvertFile\\ConvertFile\\Excels_Read";
FileInfo file = new FileInfo(fileName);
file.CopyTo(filedest);
// File.Copy(fileName, filedest,true);
MessageBox.Show("Import Done!!!");
}
}
이 실장은 유효합니다.
string file = "abc.txt";
string fileNoExtension = file.Replace(".txt", "");
언급URL : https://stackoverflow.com/questions/7356205/remove-file-extension-from-a-file-name-string
'programing' 카테고리의 다른 글
장고와 xlrd, 메모리에서 읽기 (0) | 2023.04.21 |
---|---|
git에서 푸시하려는 내용을 보려면 어떻게 해야 합니까? (0) | 2023.04.21 |
SQL, PL-SQL 및 T-SQL의 차이점은 무엇입니까? (0) | 2023.04.21 |
스토리보드를 사용하여 초기 뷰 컨트롤러를 프로그래밍 방식으로 설정합니다. (0) | 2023.04.21 |
명령줄에서 Azure 스토리지 에뮬레이터 데이터를 클리어하는 방법 (0) | 2023.04.21 |