【问题标题】:Setting default folder for openfile dialog为 openfile 对话框设置默认文件夹
【发布时间】:2013-02-14 21:36:01
【问题描述】:

我有一个OpenFileDialog,我正在尝试设置默认文件夹。最初我将它设置为Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\\new_folder1",效果很好。但是我把它改成了Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\\new_folder2",它仍然在new_folder1中弹出。当我调试它时,对话框的InitialDirectory 是new_folder2。我删除了 new_folder1,但对话框在启动时仍会查找它。现在我的代码中的任何地方都没有对 new_folder1 的引用。

对可能发生的事情有任何想法吗?

编辑:这是我设置初始 OpenFileDialog 的代码:

 OpenFileDialog dlg = new OpenFileDialog();
 dlg.Filter = "XML files (*.xml)|*.xml";
 String pathDefault = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\\new_folder2";
 dlg.InitialDirectory = pathDefault;

【问题讨论】:

  • 你能贴出你设置属性的实际代码吗?
  • 另外,将两个文件夹连接在一起时最好使用Path.Combine
  • 为什么要使用双反斜杠?只需使用Path.Combine 即可避免犯此类错误。

标签: c# .net openfiledialog


【解决方案1】:

您正在使用@"\\...."。要么去掉@,要么把\\改成\

或者,试试:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal),"new_folder2")

【讨论】:

  • 这行得通。谢谢。我仍然不明白为什么它在搜索 new_folder1,或者为什么当默认为 Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\\new_folder1" 时它工作正常。
  • 是的,这很奇怪——我也不知道。
  • 看起来OpenFileDialog.InitialDirectory 将接受像 C:\Users\fred\Documents\\new_folder1 这样的无效路径(注意双反斜杠)。 OpenFileDialog 或底层公共对话框隐藏了导航到该目录时会发生的错误。这可以解释为什么通用对话框状态不会更改为无效目录。
猜你喜欢
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 2014-04-07
相关资源
最近更新 更多