【问题标题】:How do I know which folder Save As… will start in?我如何知道另存为...将从哪个文件夹开始?
【发布时间】:2017-06-15 23:37:01
【问题描述】:

我想避免在一个特定文件夹中打开“另存为”对话框。如果我从该文件夹中打开一个文件,然后执行另存为...,它将在同一个文件夹中开始(如预期的那样)。我想我可以在调用new SaveFileDialog() 后检查InitialDirectory 并在必要时更改它,但它是一个空字符串。

Directory.GetCurrentDirectory() 返回包含可执行文件的文件夹。

var dialog = new SaveFileDialog();
Console.WriteLine(Directory.GetCurrentDirectory()); // Prints "Z:\Documents\Projects\ProjectName\bin\x64\Debug"
Console.WriteLine(dialog.InitialDirectory); // Prints empty string

如何询问 Windows(7 或 10)“另存为...”对话框将从哪个文件夹开始?

编辑

这是一个与“如何设置初始目录?”完全不同的问题。我想在对话框打开之前知道初始目录将是什么,以便我只能在它将成为一个特定目录的情况下更改它。

【问题讨论】:

  • 你检查过这个吗:stackoverflow.com/questions/1175242/…
  • 初始目录存储在某个应用程序的基础上。就快速测试显示而言,无论如何都不是注册表中的明文。 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU 包含一些片段。 FileDialog.InitialDirectory 无论如何都不会被播种,它似乎是在您调用ShowDialog() 之后确定的
  • @CodeCaster 谢谢。这让我足够接近,以至于我能够通过一些搜索找到答案。最近的目录位于LastVisitedPidlMRU。解释这些数据是一个不同的问题。

标签: c# .net windows


【解决方案1】:

我假设您希望 savefiledialog 从您想要的文件夹开始

尝试将初始目录更改为您想要的任何目录

dialog.InitialDirectory="C:\Users\Your_Name\Desktop\";

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    相关资源
    最近更新 更多