OpenFileDialog的初始目录
本文关键字:OpenFileDialog | 更新日期: 2023-09-27 18:29:55
文件对话框必须打开关闭前使用的最后一个目录位置,但我不知道如何做到这一点。我的同事只给我看了一个单词的例子,当你点击"文件"时,它会显示最后使用的文件,他告诉我使用寄存器或INI文件,我以前从未使用过。
这是我正在使用的代码:
string f_sOudeLocatie = @"D:'path'is'classified";
private void btBrowse_Click(object sender, EventArgs e)
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "Zoek de CSV file";
fdlg.InitialDirectory = f_sOudeLocatie;
fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
fdlg.FilterIndex = 1;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
tbGekozenBestand.Text = fdlg.FileName;
tbVeranderNaamIn.Text = Path.GetDirectoryName(fdlg.FileName);
f_sOudeLocatie = Path.GetDirectoryName(fdlg.FileName);
f_sSourceFileName = fdlg.FileName;
f_sDestFileName = Path.GetFileName(Path.GetDirectoryName(fdlg.FileName)) + ".csv";
btOpslaan.Enabled = true;
tbVeranderNaamIn.ReadOnly = false;
}
}
如果您要在按钮点击事件之外创建OpenFileDialog
,它应该记得您被的最后一个文件夹
string f_sOudeLocatie = @"D:'path'is'classified";
OpenFileDialog fdlg = new OpenFileDialog();
public Form1()
{
InitializeComponent();
fdlg.Title = "Zoek de CSV file";
fdlg.InitialDirectory = f_sOudeLocatie;
fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
fdlg.FilterIndex = 1;
fdlg.RestoreDirectory = true;
}
private void btBrowse_Click(object sender, EventArgs e)
{
if (fdlg.ShowDialog() == DialogResult.OK)
{
fdlg.InitialDirectory = fdlg.FileName.Remove(fdlg.FileName.LastIndexOf("''"));// THIS LINE IS IMPORTENT
tbGekozenBestand.Text = fdlg.FileName;
tbVeranderNaamIn.Text = Path.GetDirectoryName(fdlg.FileName);
f_sOudeLocatie = Path.GetDirectoryName(fdlg.FileName);
f_sSourceFileName = fdlg.FileName;
f_sDestFileName = Path.GetFileName( Path.GetDirectoryName(fdlg.FileName) ) + ".csv";
btOpslaan.Enabled = true;
tbVeranderNaamIn.ReadOnly = false;
}
}
您需要设置
fdlg.RestoreDirectory = false;
原因:
RestoreDirectory属性确保Environment.CurrentDirectory将在打开文件对话框之前重置关闭如果RestoreDirectory设置为false,则Environment.CurrentDirectory将设置为OpenFileDialog最后一次打开。如所述
您可以使用注册表来存储最后一个目录位置。每次打开文件对话框时,从注册表中获取值并设置为默认位置。当它关闭时,将位置存储回注册表。
这篇代码项目文章很好地解释了如何读写注册表ReadWriteDeleteFromRegistry
如果您选择使用INI文件,一些搜索将为您提供如何从INI文件读写的示例