我试图删除路径例如文件名:删除文件名
/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/TestMachine.vmx
会导致:
/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/
铭记的是,文件名可能会改变,正则表达式是实现这一目标的最佳方式吗?
我试图删除路径例如文件名:删除文件名
/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/TestMachine.vmx
会导致:
/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/
铭记的是,文件名可能会改变,正则表达式是实现这一目标的最佳方式吗?
其实,Path.GetDirectoryName会/ 's到\' s。
var filepath = "/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/TestMachine.vmx";
var directorypath = filepath.Substring(0, filepath.LastIndexOf("/", StringComparison.Ordinal) + 1);
// /vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/
var dir = Path.GetDirectoryName(filepath);
// \vmfs\volumes\50153b66-6aac5486-e942-080027a10080\TestMachine
您可以使用:
Path.GetDirectoryName(path);
您可以使用在
Path.GetDirectoryName()
更多信息:http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx
有针对
Path.GetDirectoryName(fileName)
在System.IO.Path的方法
使用System.IO.Path.GetDirectoryName
System.IO.Path.GetDirectoryName("/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/TestMachine.vmx")
strPath = "/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/TestMachine.vmx";
string[] strFileParts = strPath.Split('\\');
if (strFileParts.Length > 0)
{
str = strFileParts[strFileParts.Length - 1]);
}
result = full_path - str;
这是一个相当沉重的方法,但有时它很高兴您使用的是防弹技术知道...
var path = new UriBuilder("file", "/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/TestMachine.vmx");
var parent = new Uri(path.Uri, "..");
Console.WriteLine(parent.AbsolutePath);
结果:
/vmfs/volumes/50153b66-6aac5486-e942-080027a10080/TestMachine/
接受,因为你是砰的一声,随着路径,因为它的Linux路径,“/”被转换为“\” – user1559618 2012-07-29 19:11:19