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

时间:2015-06-10 22:58:40

标签: c# .net winforms web-applications

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

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

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

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;
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

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

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;
                   }
               }
           }
       }
   }    
}