我知道这是一个旧线程,但我无法找到我喜欢的相同问题的解决方案,所以我开发了自己的解决方案。我在 WPF 中做到了这一点,但它在 Winforms 中应该几乎相同。
本质上,我使用一个app.config
文件来存储我的程序的最后一个路径。
当我的程序启动时,我读取配置文件并保存到全局变量。下面是我在程序启动时调用的类和函数。
public static class Statics
{
public static string CurrentBrowsePath { get; set; }
public static void initialization()
{
ConfigurationManager.RefreshSection("appSettings");
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
CurrentBrowsePath = ConfigurationManager.AppSettings["lastfolder"];
}
}
接下来我有一个按钮,可以打开文件浏览对话框并将InitialDirectory
属性设置为存储在配置文件中的内容。希望这有助于任何一个谷歌搜索。
private void browse_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog open_files_dialog = new OpenFileDialog();
open_files_dialog.Multiselect = true;
open_files_dialog.Filter = "Image files|*.jpg;*.jpeg;*.png";
open_files_dialog.InitialDirectory = Statics.CurrentBrowsePath;
try
{
bool? dialog_result = open_files_dialog.ShowDialog();
if (dialog_result.HasValue && dialog_result.Value)
{
string[] Selected_Files = open_files_dialog.FileNames;
if (Selected_Files.Length > 0)
{
ConfigWriter.Update("lastfolder", System.IO.Path.GetDirectoryName(Selected_Files[0]));
}
// Place code here to do what you want to do with the selected files.
}
}
catch (Exception Ex)
{
MessageBox.Show("File Browse Error: " + Environment.NewLine + Convert.ToString(Ex));
}
}