【问题标题】:Find out "last directory" of SaveFileDialog找出 SaveFileDialog 的“最后一个目录”
【发布时间】:2019-05-16 11:13:11
【问题描述】:

我有一个视图,其中包含一个文本字段和一个按钮。 该按钮显示一个 SaveFileDialog - 选定的文件路径将分配给文本字段。

  var saveFileDialog = new System.Windows.Forms.SaveFileDialog();
  var lastPath = saveFileDialog.InitialDirectory; //empty

我想要的是知道位置,SaveFileDialog 在 ShowDialog 上打开。

我知道,我可以设置 InitialDirectory,但是这个属性默认是空的。而且我明确地不想设置 InitialDirectory,我的目标是获得一个表单明显记得的那个。

有没有办法得到这个(无需额外“保存”它以供下次调用)。

【问题讨论】:

标签: c# winforms


【解决方案1】:

路径来自注册表 -

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Comdlg32\LastVisitedPidlMRU

或对于旧版 Windows 操作系统 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Comdlg32\OpenSaveMRU

还要注意@Jimi 提到的RestoreDirectory 属性。

编辑:我最初认为 regkey/value 只是一个 unicode 字符串,但使用起来并不那么直接。所以重新考虑这种方法。如果你真的需要弄清楚按键是如何工作的,我建议你看看 - https://github.com/aelij/svcperf/blob/master/src/Viewer/UIUtils/MruFileHelper.cs

【讨论】:

  • 我认为这就是我要寻找的东西。但是这种路径格式到底是什么?我现在尝试了从该二进制文件中提取路径的不同变体,但没有成功。
猜你喜欢
  • 2015-02-15
  • 2010-12-17
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 2011-01-04
  • 2012-08-12
相关资源
最近更新 更多