2011-10-18 11 views
0

これは動作します:RootFolderがMyComputerの場合、FolderBrowserDialogがデスクトップをSelectedPathとして許可しないのはなぜですか?

FolderBrowserDialog dlg = new FolderBrowserDialog(); 
dlg.RootFolder = Environment.SpecialFolder.MyComputer; 
dlg.SelectedPath = "C:\\Almo\\"; 
dlg.ShowDialog(); 

これはしません:

FolderBrowserDialog dlg = new FolderBrowserDialog(); 
dlg.RootFolder = Environment.SpecialFolder.MyComputer; 
dlg.SelectedPath = "C:\\Users\\Almo\\Desktop\\"; 
dlg.ShowDialog(); 

最初はCで始まるファイル選択ダイアログが開きます:\アルモ、第二は、マイコンピュータで開始。この仕事をする方法はありますか?問題は私のアプリケーションのデフォルトの保存場所はデスクトップで、ユーザーが別の場所を選択できるようにしたいのですが、現在の場所がどこにあってもダイアログを開始したいのです。

+0

MyComputerがデスクトップに含まれているようです。 :S – Almo

答えて

0

どうやら、勝利7でデスクトップを実際のパスに存在しない

C:\ Users \ユーザー名\デスクトップ

システムは、それは、コマンドプロンプトでとWindowsエクスプローラでないふり。しかし、そこには存在しないので、RootFolderの下にあるパスを必要とするSelectedPathの部分は、そのようにパスを設定することを禁止します。

0

試してみてください。

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 
+0

Myパスは文字列として保存され、ユーザーはMyComputer内の任意のディレクトリを選択できます。これは、ユーザがデスクトップ上に保存したいという特殊なケースを解決し、それがデスクトップであるかどうかを見るために例外チェックを必要とする。上記の私のソリューションがうまくいかない理由は何ですか? – Almo

0

用途:

dlg.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) 

これはあなたのコードを実行しているユーザーのためのデスクトップのパスを取得します。

+0

Knvnの解答を見てください。 – Almo

関連する問題