我认为使用应用程序设置可以做到这一点,但我没有让它工作.这就是我所拥有的:
private void btnBrowse_Click(object sender, EventArgs e)
{
if (fbFolderBrowser.ShowDialog() == DialogResult.OK)
{
// I want to open the last folder selected by the user here.
}
Run Code Online (Sandbox Code Playgroud)
当用户点击此按钮时,我想打开浏览窗口到他访问的最后一个文件夹并保存.下次他点击按钮时,它会自动选择该文件夹.
我想也许我可以使用用户变量,我可以在运行时更改,但我没有让它工作.任何人都可以帮我一把吗?
Kas*_*han 13
转到您已创建的项目的设置页面,项目设计器,并在应用程序内添加文件夹路径变量.现在添加以下代码以恢复上次选择的文件夹路径.
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
folderBrowser.Description = "Select a folder to extract to:";
folderBrowser.ShowNewFolderButton = true;
folderBrowser.SelectedPath = Properties.Settings.Default.Folder_Path;
//folderBrowser.SelectedPath = project_name.Properties.Settings.Default.Folder_Path;
if (folderBrowser.ShowDialog() == DialogResult.OK)
{
if (!String.IsNullOrEmpty(Properties.Settings.Default.Folder_Path))
Properties.Settings.Default.Folder_Path = folderBrowser.SelectedPath;
Properties.Settings.Default.Folder_Path = folderBrowser.SelectedPath;
Properties.Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)
您可以在两个位置找到用户最后访问的文件夹:
Recent Files and Folders: 在这里能找到它:C:\Documents and Settings\USER\RecentRegistry:在注册表中查看这里:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU您可以使用此代码片段来查找它:
public static string GetLastOpenSaveFile(string extention)
{
RegistryKey regKey = Registry.CurrentUser;
string lastUsedFolder = string.Empty;
regKey = regKey.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU");
if (string.IsNullOrEmpty(extention))
extention = "html";
RegistryKey myKey = regKey.OpenSubKey(extention);
if (myKey == null && regKey.GetSubKeyNames().Length > 0)
myKey = regKey.OpenSubKey(regKey.GetSubKeyNames()[regKey.GetSubKeyNames().Length - 2]);
if (myKey != null)
{
string[] names = myKey.GetValueNames();
if (names != null && names.Length > 0)
{
lastUsedFolder = (string)myKey.GetValue(names[names.Length - 2]);
}
}
return lastUsedFolder;
}
Run Code Online (Sandbox Code Playgroud)
或者
在 Windows XP 中,当您在SaveFileDialog保存文件的目录上按“保存”时,该目录将被设置为新的当前工作目录(图中的目录Environment.CurrentDirectory)。
这样,当您重新打开 时FileDialog,它会在与之前相同的目录中打开。
通过设置FileDialog.RestoreDirectory = true,关闭时FileDialog会恢复原来的工作目录。
在 Windows Vista/7 中,行为始终为FileDialog.RestoreDirectory = true.