2009-07-02 10 views
3

2つのGUIDを使用して、フォルダマイコンピュータマイドキュメントを開いています。C#から「マイドキュメント」と「マイコンピュータ」フォルダを開くにはどうすればよいですか?

Process.Start("iexplore.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); 
Process.Start("iexplore.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}"); 

しかし、それは、Internet Explorerを開き、フォルダマイコンピュータマイドキュメントを開きます。 explorer.exeの

+4

このGUIDを意味のある名前でconstにラップする必要があります。これにより、あなたやあなたの同僚のために多くの時間を節約することができます。 – arbiter

+0

コメントありがとうございました –

+1

@arbiterこれは非常に良い提案です。コードを管理している開発者にとってより親しみやすくなります。 –

答えて

5

ベターはまだ完全にexplorerをスキップすることであろうと、ちょうど直接GUIDを "開始":

Process.Start("::{20d04fe0-3aea-1069-a2d8-08002b30309d}");を。 ..

+4

ハードコア! これは、5年後のこの種のコードを介してデバッグする必要がありますジュニア開発者のためにたくさんの楽しみを提供します:) – SWeko

+1

を@SWekoそれは、この答えは受け入れ –

6

試してみてください。

Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); 
Process.Start("explorer.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}"); 
9

あなたが試してみました:

Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); 
Process.Start("explorer.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}"); 

を?

+0

ありがとうございました –

+1

はい、iexplorer.exeは実際にはInternet Explorerで、explorer.exeはWindowsエクスプローラです。私は、Windows 7上でこれをしようとした場合 – Emmanuel

35

これらのハードコーディングされたGuid値を使用することは、これを達成する最良の方法のようには見えません。

Environment.GetFolderPath関数を使用して、システム特殊フォルダのパスを取得できます。 Environment.SpecialFolder列挙型を受け入れます。

「マジック」のハードコーディングされた値を持たないため、この方法でより堅牢になります。ここで

は、あなたがそれを使用したい方法は次のとおりです。Windows 7のユーザー

ため

//get the folder paths 
string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); 
string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 
//open explorer and point it at the paths 
System.Diagnostics.Process.Start("explorer", myComputerPath); 
System.Diagnostics.Process.Start("explorer", myDocumentsPath); 

重要な注意Windows 7上でマイコンピュータを開くには、このコードを使用しようとすると、間違って、その結果と思われます代わりにライブラリフォルダが開かれています。これは、Windows 7では空のパスでエクスプローラを実行するデフォルトの動作が変更されたためです。

私は接続時に次のバグレポートを提出しました。

https://connect.microsoft.com/VisualStudio/feedback/details/757291/environment-getfolderpath-not-working-correctly-in-windows-7#details

(これを指摘して、コメントでJeremyKのおかげで)

+1

また、これは私が –

+0

よりも見えるマイコンピュータを返すようです@JeremyK –

+0

をRECYCLEBIN開く方法はるかに読みやすい受け入れ答え – JeremyK

2

これは私のVistaでは動作しません:

string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); 
System.Diagnostics.Process.Start("explorer", myComputerPath); 

as Environment.SpecialFolder.MyComputerは ""を返し、Process.Start( "explorer"、 "")はマイドキュメントを開きます。ただ、

System.Diagnostics.Process.Start(directoryPath); 

そのは非常に簡単に入る

Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); 
-1

Samdoss

GUIDは、しかし、それを行うようです。それを試してください。

+0

もう少し説明がいいだろう得たことを私に悲しく.. 。 – poplitea

1
System.Diagnostics.Process.Start("..."); 

私はそれが疑わしいと思うが、ただそれを実行します。それは動作します。これは私のコンピュータのコードです。私はそれが何であるべきかわからないマイドキュメント

0

System.Diagnostics.Process.Start("...");

私はそれは疑わしい見えます知っているが、それを実行します。それは動作します。これは私のコンピュータのコードです。私はそれが私の書類のためにあるべきであるか分からない。

Windows 7では、実行可能ファイルが実行されているフォルダ、つまり「現在の」フォルダが開きます。

0

私はマイドキュメントを開くために持っていたし、私上記のコメントに基づいは副作用なしでエクスプローラを開くためのソリューションを絞り込ん:

Process.Start("::{450d8fba-ad25-11d0-98a8-0800361b1103}"); 

私は、Windows Server 2008 R2上でそれをテストしました。

関連する問題