我可以在C:\ Users\Public\Documents中启动DotNet的OpenFileDialog吗?

Jas*_*per 8 .net c# openfiledialog

有没有办法OpenFileDialogC:\Users\Public\Documents文件夹中启动?

我正在使用DotNet框架编写C#应用程序.我试图发动OpenFileDialog,与InitialDirectory"C:\\Users\\Public\\Documents\\"FileName"world.txt".不幸的是,它OpenFileDialog正在把我放在Documents捷径而不是C:\Users\Public\Documents.

预期结果
我希望看到OpenFileDialog打开,顶部文本框显示> This PC > Windows7_OS (C:) > Users > Public > Documents,底部文本框显示world.txt.我希望如果我点击顶部文本框,它会显示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();  
Run Code Online (Sandbox Code Playgroud)

我取消了每个对话框.

我曾经C:\WINDOWS\System32\cmd.execd之间C:\C:\Users\C:\Users\PublicC:\Users\Public\Documents\.

我试过的事情的结果

  • 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.在这种情况下,它默认为我的项目的程序集的bin的Debug文件夹.

  • 何时dlg.InitialDirectory"C:\\""C:\\Users\\""C:\\Users\\Public\\"对话框按预期运行.单击顶部文本框中产生C:\C:\UsersC:\Users\Public分别.

  • dlg.InitialDirectory = "C:\\Users\\Public\\Documents\\"对话框行为不正确时.顶部文本框显示> This PC > Documents,底部文本框显示world.txt.如果我点击顶部文本框,它会显示Documents.显示的文件夹的内容是一样的内容C:\Users\Public\Documents.

  • 使用cmd.exe让我cd按预期在文件夹之间,包括进入C:\Users\Public\Documents.

我的环境
我使用Microsoft Visual C#2015运行Microsoft Visual Studio社区2015版本14.0.23107.0 D14REL.我的操作系统是Windows 10 Pro.

Dav*_*ead 1

如果您使用 System.Windows.Forms.OpenFileDialog 您可以设置:

dialog.AutoUpgradeEnabled = false;
Run Code Online (Sandbox Code Playgroud)

该对话框看起来有点过时/平淡/“老派”,但它至少显示了正确的内容!