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

时间:2009-01-13 13:51:51

标签: c# .net parsing path

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

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,等等?

5 个答案:

答案 0 :(得分:101)

使用Path中的System.IO课程。它包含用于操作文件路径的有用调用,包括执行所需操作的GetDirectoryName,返回文件路径的目录部分。

用法很简单。

string directoryPath = Path.GetDirectoryName(filePath);

答案 1 :(得分:26)

怎么样:

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

答案 2 :(得分:12)

if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
    strfilename = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
}

答案 3 :(得分:6)

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

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

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

答案 4 :(得分:0)

这是一个简单的方法!

string fullPath =openFileDialog1.FileName;
string directory;
directory = fullPath.Substring(0, fullPath.LastIndexOf('\\'));