需要帮助使文件导出功能记住用户选择的路径
Need help making a File Export function remember the path that the user selects
我的程序中有一个导出数据的函数。导出效果很好,但我遇到了一些问题:当用户单击“导出”时,他们会看到一个文件夹浏览器,可以选择要导出到硬盘驱动器上的哪个位置。浏览器 最初 启动时所有硬 drives/folders 都像它们应该的那样折叠,但我不知道如何制作它所以程序会记住用户选择的位置,这样下次他们要导出时,它会自动打开到该位置,而不是再次打开时所有内容都已折叠。我只是在逻辑上遇到了麻烦,我想。有人有任何提示吗?
此外,为了澄清起见,我试图让它只在会话期间记住位置,而不是永久地在寄存器中。
到目前为止,这是我的导出功能,如果您认为这会有所帮助:
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;
}
}
}
}
}
这应该可以做到。您只需要一个 class 字段来保留最后一个值。
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;
}
}
}
}
}
}
我的程序中有一个导出数据的函数。导出效果很好,但我遇到了一些问题:当用户单击“导出”时,他们会看到一个文件夹浏览器,可以选择要导出到硬盘驱动器上的哪个位置。浏览器 最初 启动时所有硬 drives/folders 都像它们应该的那样折叠,但我不知道如何制作它所以程序会记住用户选择的位置,这样下次他们要导出时,它会自动打开到该位置,而不是再次打开时所有内容都已折叠。我只是在逻辑上遇到了麻烦,我想。有人有任何提示吗?
此外,为了澄清起见,我试图让它只在会话期间记住位置,而不是永久地在寄存器中。
到目前为止,这是我的导出功能,如果您认为这会有所帮助:
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;
}
}
}
}
}
这应该可以做到。您只需要一个 class 字段来保留最后一个值。
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;
}
}
}
}
}
}