パスを取得する必要があります...しかし、コンピューター、ごみ箱、ネットワークなどの特別なフォルダーの場所は返されません。
あなたが直面している当面の問題は、ウィンドウの場所が物理ディレクトリでない場合にLocationURL
返されることです。""
「マイ コンピュータ」、「ごみ箱」、および「ネットワーク」の場合、これは当然のことです。これらは仮想フォルダです。それらはディスク上の場所ではないため、それらを指すパスまたは URL はありません。
ただし、「ドキュメント」(これは特別なフォルダーでもありますが、ディスク上のディレクトリに対応しています) に移動すると、LocationURL
引き続き""
. ここではパスを提供できますが、そうしないことを選択します。これはやや意地悪なようです。
ShellWindowsがInternetExplorer
objectsを返すというドキュメントを見つけました。ShellBrowserWindow
使用しているクラスのドキュメントは見つかりませんでしたInternetExplorer
が、類似または同一のようです。そのため、Intellisense でプロパティ名を調べるだけでなく、参照できるドキュメントがいくつかあります。
有用に見える他の唯一のプロパティは ですLocationName
。これは、仮想フォルダーまたは特別なフォルダーに対しても何かを返します。ただし、「Documents」や「Libraries」などの文字列が返されますが、これはプログラムで実際に使用できるものではありません (ロケールや Windows のバージョンによって異なります)。
リストに表示するものだけが必要な場合は、LocationName
おそらく十分でしょう。実際にパスが必要な場合は、おそらく運が悪いでしょう (前述のように、コンピューター、ごみ箱、ネットワークなどにはパスがないため、いずれにせよそうなるでしょう)。