C:\Users\Public\Documents
フォルダにOpenFileDialog
を起動する方法はありますか?C: Users Public DocumentsでDotNetのOpenFileDialogを起動できますか?
私はDotNetフレームワークを使用してC#アプリケーションを作成しています。私はOpenFileDialog
をInitialDirectory
の"C:\\Users\\Public\\Documents\\"
とFileName
の"world.txt"
と打ち上げようとしています。残念ながら、OpenFileDialog
はC:\Users\Public\Documents
の代わりにDocuments
のショートカットに入れています。
期待される結果
私は> This PC > Windows7_OS (C:) > Users > Public > Documents
を示す上面テキストボックスとworld.txt
を示す底面テキストボックスで、OpenFileDialogオープンを見て期待しています。一番上のテキストボックスをクリックすると、C:\Users\Public\Documents
と表示されます。
実際の結果
OpenFileDialogが開きます。上部のテキストボックスは> This PC > Documents
を示し、下部のテキストボックスはworld.txt
を示します。一番上のテキストボックスをクリックすると、Documents
と表示されます。表示されているフォルダの内容はで、ではなく、C:\Users\Public\Documents
の内容と同じです。私は
を試してみました
物事は、私は次のコード行の後のVisual Studioデバッガでコードを停止している:イミディエイトウィンドウで
OpenFileDialog dlg = new OpenFileDialog();
、私は次のようなコードを実行しました:
dlg.FileName = "world.txt"
? dlg.FileName
dlg.InitialDirectory = "C:\\NonExistentDirectory\\";
dlg.ShowDialog();
dlg.InitialDirectory = "C:\\";
dlg.ShowDialog();
dlg.InitialDirectory = "C:\\Users\\";
dlg.ShowDialog();
dlg.InitialDirectory = "C:\\Users\\Public\\";
dlg.ShowDialog();
dlg.InitialDirectory = "C:\\Users\\Public\\Documents\\";
dlg.ShowDialog();
各ダイアログがキャンセルされます。
私はC:\
とC:\Users\
とC:\Users\Public
とC:\Users\Public\Documents\
間cd
にC:\WINDOWS\System32\cmd.exe
を使用。 dlg.InitialDirectory = "C:\\NonExistentDirectory\\"
、ダイアログのフォルダが最初にThis PC > Documents > Visual Studio 2015 > Projects > SimpleGame > Controller > bin > Debug"
として表示されたら、私は
を試してみましたが、物事の
結果。テキストボックスをクリックすると、
C:\Users\Owner\Documents\Visual Studio 2015\Projects\SimpleGame\Controller\bin\Debug
と表示されます。したがって、OpenFileDialog
は、ディレクトリを変更しないで無効なInitialDirectory
を自動的に処理すると仮定します。この場合、プロジェクトのアセンブリのビンのDebug
フォルダにデフォルト設定されています。dlg.InitialDirectory
が"C:\\"
または"C:\\Users\\"
または"C:\\Users\\Public\\"
の場合、ダイアログは期待どおりに動作します。上部のテキストボックスをクリックすると、それぞれC:\
またはC:\Users
またはC:\Users\Public
が生成されます。dlg.InitialDirectory = "C:\\Users\\Public\\Documents\\"
ダイアログが正しく動作しません。上部のテキストボックスは> This PC > Documents
を示し、下部のテキストボックスはworld.txt
を示します。一番上のテキストボックスをクリックすると、Documents
と表示されます。表示されているフォルダの内容はで、ではなく、C:\Users\Public\Documents
の内容と同じです。cmd.exe
を使用すると、C:\Users\Public\Documents
を含む予想通りにフォルダ間にcd
が表示されます。
私は、Microsoft Visual C#を使用して、2015年私のオペレーティングシステムをマイクロソフトのVisual Studioのコミュニティ2015バージョン14.0.23107.0 D14RELを実行しています
私の環境では、Windows 10プロです。
特典がありますか?管理者としてvsを実行しようとしましたか? – Noctis
私はWindows 10 Proも使用しており、この動作を確認できます。 'dlg.InitialDirectory =" C:\\ Users \\ Public \\ Music \\ ";'または 'dlg.InitialDirectory = $"を使用する場合、C:\\ Users \\ {Environment.UserName} \\ Documents \\ ";'ダイアログが対応するライブラリに開きます。ただし、カスタムライブラリの一部であるディレクトリへのパスを指定すると、その物理ディレクトリに対話が開きます。おそらくダイアログは、['KNOWNFOLDERID'](https://msdn.microsoft.com/library/windows/desktop/dd378457.aspx)を持つライブラリの一部であるディレクトリに開かれたときに、"スマート "になるようにしようとしています。 – BACON
'Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments)'を使ってディレクトリを取得しようとしましたか? –