web-dev-qa-db-ja.com

開いているファイルの場所

Windowsエクスプローラーでファイルを検索し、検索結果からファイルを右クリックする場合。オプションがあります:「ファイルの場所を開く」。同じことをC#WinFormに実装したいと思います。これは私がしました:

if (File.Exists(filePath)
{
    openFileDialog1.InitialDirectory = new FileInfo(filePath).DirectoryName;
    openFileDialog1.ShowDialog();
}

それを行うためのより良い方法はありますか?

12
Haroon A.

openFileDialog_ViewOpenFileDialog の場合、ユーザーにファイルを開くように求めるダイアログが表示されます。 Explorerで実際に場所をopenしたいとします。

あなたはこれをするでしょう:

if (File.Exists(filePath))
{
    Process.Start("Explorer.exe", filePath);
}

selectに対して、ファイルExplorer.exeは次のような/select引数を取ります。

Explorer.exe /select, <filelist>

これはSO投稿: エクスプローラーでフォルダーを開いてファイルを選択する

したがって、コードは次のようになります。

if (File.Exists(filePath))
{
    Process.Start("Explorer.exe", "/select, " + filePath);
}
42
gideon

これが私のコードでのやり方です。これにより、エクスプローラーでファイルディレクトリが開き、Windowsエクスプローラーと同じように指定されたファイルが選択されます。

if (File.Exists(path))
{
    Process.Start(new ProcessStartInfo("Explorer.exe", " /select, " + path);
}
6
Chibueze Opata