83

ファイルの選択から始まる小さなユーティリティを作成しており、次にフォルダーを選択する必要があります。選択したファイルがあった場所にフォルダーをデフォルトにしたいと思います。

OpenFileDialog.FileNameフルパスとファイル名を返します- 私が望むのはパス部分だけを取得することです(sans 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,か??

4

6 に答える 6

115

Pathのクラスを使用しSystem.IOます。ファイルパスを操作するための便利な呼び出しが含まれておりGetDirectoryName、ファイルパスのディレクトリ部分を返します。

使い方は簡単です。

string directoryPath = Path.GetDirectoryName(filePath);
于 2009-01-13T13:57:58.600 に答える
32

これはどう:

string fullPath = ofd.FileName;
string fileName = ofd.SafeFileName;
string path = fullPath.Replace(fileName, "");
于 2013-02-15T12:23:15.483 に答える
8

FileDialogの代わりにFolderBrowserDialogを使用して、OKの結果からパスを取得できます。

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

if (browser.ShowDialog() == DialogResult.OK)
{
  tempPath  = browser.SelectedPath; // prints path
}
于 2012-09-21T17:11:58.200 に答える