从包含文件名的path获取没有文件名的完整path
System.IO.Path
中是否有内build的东西只给我一个文件path?
例如,如果我有一个string
@ “C:\networking服务器\ PUBLIC \ myCompany的\ CONFIGS \ promo.xml”
有什么BCL的方法会给我的
“C:\networking服务器\ PUBLIC \ myCompany的\ CONFIGS \”?
Path.GetDirectoryName()
…但是你需要知道你传递给它的path确实包含一个文件名; 它只是从path中删除最后一位,无论是文件名还是目录名(它实际上不知道哪个)。
你可以首先通过testing你的path上的File.Exists()
和/或Directory.Exists()
来validation你是否需要调用Path.GetDirectoryName
Console.WriteLine(Path.GetDirectoryName(@"C:\hello\my\dear\world.hm"));
Path.GetDirectoryName()
返回目录名称,所以为了你想要的(与尾部反向固体angular色字符),你可以调用Path.GetDirectoryName(filePath) + Path.DirectorySeparatorChar
。
我用这个,它运作良好:
string[] filePaths = Directory.GetFiles(Path.GetDirectoryName(dialog.FileName)); foreach (string file in filePaths) { if (comboBox1.SelectedItem.ToString() == "") { if (file.Contains("c")) { comboBox2.Items.Add(Path.GetFileName(file)); } } }
如图所示使用“GetParent()”,效果很好。 根据需要添加错误检查。
var fn = openFileDialogSapTable.FileName; var currentPath = Path.GetFullPath( fn ); currentPath = Directory.GetParent(currentPath).FullName;