.NET開発者のためのブログメディア

C#で指定フォルダを開く・指定ファイルの選択方法を解説
- SE
- C#で指定フォルダやファイルを開くことができると聞きました。方法を教えてください。
- PM
- 様々な方法で開くことができます。実際のソースコードを見ていきましょう。
目次
C#でフォルダを開く方法について
今回は、C#でフォルダを開く方法について説明します。C#では、指定のフォルダを開いたり、指定ファイルを選択した状態で開いたりできます。
C#でフォルダを開く方法に興味のある方はぜひご覧ください。
エクスプローラで開く
C#では、exeを関連付けてフォルダを開くことができ、通常はエクスプローラが関連付けられていますので、エクスプローラでフォルダが開きます。
実際のソースコードを見てみましょう。
事前に”C:\exist”フォルダを作成しておいてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System; using System.Diagnostics; namespace WindowsFormsApp1 { static class Program { [STAThread] static void Main() { try { Process.Start(@”C:\exist”); // 指定したフォルダを開く Process.Start(@”C:\does_not_exist”); // System.ComponentModel.Win32Exception } catch (Exception e) { Console.WriteLine(e.GetType()); } } } } |
実行すると、指定したフォルダがエクスプローラで開かれます。
存在しないフォルダを指定すると、System.ComponentModel.Win32Exceptionが発生します。
このように、C#ではexeを関連付けてフォルダを開くことができます。
explorer.exe を指定してエクスプローラで開く
C#では、explorer.exe を指定してフォルダを開くことができます。
実際のソースコードを見てみましょう。
事前に”C:\exist”フォルダを作成しておいてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System; using System.Diagnostics; namespace WindowsFormsApp1 { static class Program { [STAThread] static void Main() { try { Process.Start(“explorer.exe”, @”C:\exist”); // 指定したフォルダを開く Process.Start(“explorer.exe”, @”C:\does_not_exist”); // エクスプローラが開く(例外は発生しない) } catch (Exception e) { Console.WriteLine(e.GetType()); } } } } |
実行すると、指定したフォルダがエクスプローラで開かれます。
存在しないフォルダを指定すると、例外は発生せずにエクスプローラは開きます。
このように、C#ではexplorer.exe を指定してフォルダを開くことができます。
指定のフォルダ(ファイル)が選択された状態で開く
C#では、指定したフォルダやファイルを選択した状態で開くことができます。
explorer.exeに「/selectオプション」を指定します。
実際のソースコードを見てみましょう。
事前に”C:\exist\exist.txt”ファイルを作成しておいてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using System; using System.Diagnostics; namespace WindowsFormsApp1 { static class Program { [STAThread] static void Main() { try { Process.Start(“explorer.exe”, @”/select,”“C:\exist”); // 指定したフォルダを選択した状態でエクスプローラを開く //Process.Start(“explorer.exe”, @”/select,”“C:\exist\exist.txt”); // 指定したファイルを選択した状態でエクスプローラを開く //Process.Start(“explorer.exe”, @”/select,”“C:\does_not_exist”); // エクスプローラを開く //Process.Start(“explorer.exe”, @”/select,”“C:\exist\does_not_exist.txt”); // エクスプローラを開く //Process.Start(“explorer.exe”, @”/select,”“C:\does_not_exist\does_not_exist.txt”); // エクスプローラを開く } catch (Exception e) { Console.WriteLine(e.GetType()); } } } } |
実行すると、指定したフォルダやファイルを選択した状態で開き、フォルダやファイルが存在しない場合でもエクスプローラは開きます。
分かりやすさのために、1行ずつ有効にして確認してみてください。
このように、C#では指定したフォルダやファイルを選択した状態で開くことができます。
ルートフォルダを指定して開く
C#では、ルートフォルダを指定してフォルダを開くことができます。
explorer.exeに「/rootオプション」を指定します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System; using System.Diagnostics; namespace WindowsFormsApp1 { static class Program { [STAThread] static void Main() { try { Process.Start(“explorer.exe”, @”/e,/root,”“C:\exist”); // 指定したフォルダをルートフォルダにして開く } catch (Exception e) { Console.WriteLine(e.GetType()); } } } } |
実行すると、指定したフォルダをルートフォルダにして開くことが分かります。
特殊フォルダを開く
C#では、「マイドキュメント」や「マイコンピュータ」などの特殊フォルダを開く際、パスの代わりにCLSIDを使用することでも開けます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System; using System.Diagnostics; namespace WindowsFormsApp1 { static class Program { [STAThread] static void Main() { try { Process.Start(“explorer.exe”, @”/e,::{450D8FBA-AD25-11D0-98A8-0800361B1103}”); // マイドキュメントを開く } catch (Exception e) { Console.WriteLine(e.GetType()); } } } } |
CLSIDはこの他にも多数あります。
例えば、
お気に入り→{323CA680-C24D-4099-B94D-446DD2D7249E}
PC→{20D04FE0-3AEA-1069-A2D8-08002B30309D}
PC\ダウンロード→{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{374DE290-123F-4565-9164-39C4925E467B}
PC\デスクトップ→{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
などです。他にもありますので、興味がある方は検索してみてください。
このように、C#では「マイドキュメント」や「マイコンピュータ」などの特殊フォルダを開く際、パスの代わりにCLSIDを使用することでも開けます。
- SE
- 特殊ファイルを開く方法もあるのですね。参考になりました。
- PM
- パスの代わりにCLSIDを用いたり、様々な方法があります。是非ソースコードを書いて理解を深めてください。
C#でフォルダを開く方法についてしろう
いかがでしたでしょうか。C#でフォルダを開く方法について説明しました。
C#は、指定のフォルダを開いたり、指定ファイルを選択した状態で開いたりできます。ぜひご自身でC#のソースコードを書いて、理解を深めてみましょう。