twe*_*ypi 182 c# string parsing
如果我有一个字符串说"abc.txt",有一个快速的方法来获得一个子串"abc"吗?
我不能这样做,fileName.IndexOf('.')因为文件名可能是"abc.123.txt"什么,我显然只是想摆脱扩展(即"abc.123").
R. *_*des 344
该Path.GetFileNameWithoutExtension方法为您提供了作为参数传递的文件名而没有扩展名,从名称中可以明显看出.
Ran*_*UAN 230
框架中有一个方法用于此目的,它将保留除扩展之外的完整路径.
System.IO.Path.ChangeExtension(path, null);
Run Code Online (Sandbox Code Playgroud)
如果只需要文件名,请使用
System.IO.Path.GetFileNameWithoutExtension(path);
Run Code Online (Sandbox Code Playgroud)
phd*_*ign 54
您可以使用
string extension = System.IO.Path.GetExtension(filename);
Run Code Online (Sandbox Code Playgroud)
然后手动删除扩展程序:
string result = filename.Substring(0, filename.Length - extension.Length);
Run Code Online (Sandbox Code Playgroud)
小智 27
String.LastIndexOf会起作用.
string fileName= "abc.123.txt";
int fileExtPos = fileName.LastIndexOf(".");
if (fileExtPos >= 0 )
fileName= fileName.Substring(0, fileExtPos);
Run Code Online (Sandbox Code Playgroud)
Log*_*man 12
如果你想创建没有扩展名的完整路径,你可以这样做:
Path.Combine( Path.GetDirectoryName(fullPath), Path.GetFileNameWithoutExtension(fullPath))
Run Code Online (Sandbox Code Playgroud)
但我正在寻找更简单的方法来做到这一点.有谁有想法吗?
小智 6
我用下面的代码
string fileName = "C:\file.docx";
MessageBox.Show(Path.Combine(Path.GetDirectoryName(fileName),Path.GetFileNameWithoutExtension(fileName)));
Run Code Online (Sandbox Code Playgroud)
输出将是
C:\文件