需要帮助使文件导出功能记住用户选择的路径

本文关键字:用户 选择 路径 功能 帮助 文件 | 更新日期: 2023-09-27 17:55:32

我的程序中有一个导出数据的函数。导出效果很好,但我遇到了一些问题:当用户单击"导出"时,他们会看到一个文件夹浏览器,以选择要导出到硬盘驱动器上的位置。浏览器最初启动时所有硬盘驱动器/文件夹都像它们应该的那样折叠,但我无法弄清楚如何使程序记住用户选择的位置,以便下次他们想要导出时,它会自动打开到该位置,而不是再次打开所有内容都折叠。我想,我只是在逻辑上遇到了问题。有人有什么提示吗?

另外,为了澄清起见,我试图让它仅在会话期间记住该位置,而不是像永久在寄存器上那样。

到目前为止,这是我的导出功能,如果您认为这会有所帮助:

private void Export(int formatVersion, bool pureXmlDriver)
{
  if (Device != null)
  {
    Utilities.StripShortNameFromLongNames(Device);
    using (var folderBrowser = new FolderBrowserDialog())
    {
      folderBrowser.Description = Resources.SelectExportFolder;
      if (folderBrowser.ShowDialog() == DialogResult.OK)
      {
        string selectedFolder = folderBrowser.SelectedPath;
        try
        {
          Cursor = Cursors.WaitCursor;
          HandleExport(formatVersion, pureXmlDriver, selectedFolder);
        }
        finally
        {
          Cursor = Cursors.Default;
        }
      }
    }
  }
}

需要帮助使文件导出功能记住用户选择的路径

这应该可以做到。您只需要一个类字段来保留最后一个值。

public class MyClass
{
    private string selectedPath = "";
    public void Export(int formatVersion, bool pureXmlDriver)
    {
        if (Device != null)
        {
            Utilities.StripShortNameFromLongNames(Device);
            using (var folderBrowser = new FolderBrowserDialog())
           {
               folderBrowser.Description = Resources.SelectExportFolder;
               folderBrowser.SelectedPath = selectedPath;
               if (folderBrowser.ShowDialog() == DialogResult.OK)
               {
                   selectedFolder = folderBrowser.SelectedPath;
                   try
                   {
                       Cursor = Cursors.WaitCursor;
                       HandleExport(formatVersion, pureXmlDriver, selectedFolder);
                   }
                   finally
                   {
                       Cursor = Cursors.Default;
                   }
               }
           }
       }
   }    
}