2016-04-11 14 views
4

Visual Studio 2015を使用して、C#でWindowsフォームアプリケーションを作成しています。これは予想通り、FolderBrowserDialogがルートディレクトリとして「このコンピュータ」に表示された作品私の開発マシン(Windowsの8.1)でC#FolderBrowserDialog RootFolder "Mycomputer"がWindows 10で機能しない

FolderBrowserDialog dialog = new FolderBrowserDialog(); 
dialog.RootFolder = Environment.SpecialFolder.MyComputer; 

:私は、次のコードを使用します。

しかし、Windows 10のマシンにプログラムを転送すると(Windows 10のプロバージョンとホームバージョンの両方を試しました)、FolderBrowserDialogはルートディレクトリとして「デスクトップ」で開きます。

Windows 10に固有の使用する別のはありますか?

string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);

それが解決しない:私はマイコンピュータを知っている

答えて

2

は、あなたは、これが実行した場合8で動作しますが、あなたはどのようなパスを取得しないで10.そのWindowsの8と10ので面白いでThisPCに名前が変更されました「このPC」。

また、あなたはマイコンピュータGUIDでパスを取得しており、これを試みることができる:

FolderBrowserDialog dialog = new FolderBrowserDialog(); 
dialog.SelectedPath = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"; 
+0

私は両方の提案を試みたし、ここでの結果です: '文字列myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputerは、 ); 'Windowsの8.1と10の両方で空文字列(長さ= 0)に解決します。 ' dialog.RootFolder = ":: {20D04FE0-3AEA-1069-A2D8-08002B30309D}"; RootFolder'は文字列ではなく 'System.Environment.SpecialFolder'を探しています。 – agthatch

+0

こんにちはagthatch私はあなたの文字列パスを設定するSelectedPathプロパティを使用することができます私の答えを更新しました。 –

+0

Davidさん、ありがとうございます。「This PC」がリストに表示されますが、ローカルドライブを表示するために展開されません。また、「One Drive」、「Library」、「Control Panel」など、アプリケーションには関係ない余分なフォルダが表示され、最終的にエンドユーザーを混乱させる可能性があります。 – agthatch

関連する問題