当前位置:  开发笔记 > 编程语言 > 正文

从OpenFileDialog路径/文件名中提取路径

如何解决《从OpenFileDialog路径/文件名中提取路径》经验,为你挑选了4个好方法。

我正在编写一个从选择文件开始的小实用程序,然后我需要选择一个文件夹.我想将文件夹默认为所选文件所在的位置.

OpenFileDialog.FileName返回完整的路径和文件名 - 我想要的只是获取路径部分(无文件名),所以我可以使用它作为初始选择的文件夹.

    private System.Windows.Forms.OpenFileDialog ofd;
    private System.Windows.Forms.FolderBrowserDialog fbd;
    ...
    if (ofd.ShowDialog() == DialogResult.OK)
    {
        string sourceFile = ofd.FileName;
        string sourceFolder = ???;
    }
    ...
    fbd.SelectedPath = sourceFolder; // set initial fbd.ShowDialog() folder
    if (fbd.ShowDialog() == DialogResult.OK)
    {
       ...
    }

有没有.NET方法可以做到这一点,还是我需要使用regex, split, trim,等?



1> Jeff Yates..:

使用Path来自的课程System.IO.它包含用于操作文件路径的有用调用,包括GetDirectoryName执行您想要的操作,返回文件路径的目录部分.

用法很简单.

string directoryPath = Path.GetDirectoryName(filePath);


谢谢 - 它必须是一个简单的答案.自我注意:不建议午夜后进行编码.阅读不仅仅是方法原型也有帮助,因为VS文档将其列为公共静态字符串GetDirectoryName(字符串路径)并且我误解了参数.

2> Jan Macháček..:

这个怎么样:

string fullPath = ofd.FileName;
string fileName = ofd.SafeFileName;
string path = fullPath.Replace(fileName, "");



3> 小智..:
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
    strfilename = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
}


用户选择文件时,初始目录是否会更改?如果没有,那么当用户更改目录时,此方法将导致问题。另外,我认为他不希望`FileName`作为他的`sourceFolder`的一部分。

4> Shaahin..:

您可以使用FolderBrowserDialog而不是FileDialog,并从OK结果中获取路径.

FolderBrowserDialog browser = new FolderBrowserDialog();
string tempPath ="";

if (browser.ShowDialog() == DialogResult.OK)
{
  tempPath  = browser.SelectedPath; // prints path
}

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有