有两个地方可以找到用户最后访问的文件夹:
Recent Files and Folders
: 在这里能找到它:C:\Documents and Settings\USER\Recent
Registry
:在注册表中看这里: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;
}
或者
在 Windows XP 中,当您在保存文件的目录上按 Save 时SaveFileDialog
,将设置为新的当前工作目录(在 中的那个Environment.CurrentDirectory
)。
这样,当您重新打开 时FileDialog
,它会在与以前相同的目录中打开。
通过设置FileDialog.RestoreDirectory = true
,当你关闭FileDialog
原来的工作目录时会恢复。
在 Windows Vista/7 中,行为始终为FileDialog.RestoreDirectory = true
.