C#通过注册表实现记住上次打开路径
直接上代码,代码参考自网络,进行了一些修改和封装,可以直接使用。
private bool dirPathSaveToRegistry(string path)
{
try
{
Microsoft.Win32.RegistryKey software = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE", true); //打开注册表中的software
Microsoft.Win32.RegistryKey ReadKey = software.OpenSubKey("FolderPath", true); //打开自定义的文件目录项
if (ReadKey == null)
{
ReadKey = software.CreateSubKey("FolderPath"); //不存在则新建
ReadKey?.SetValue("OpenFolderDir", path); //写入文件目录
ReadKey?.Close();
Microsoft.Win32.Registry.CurrentUser.Close();
}
else
{
ReadKey.SetValue("OpenFolderDir", path);
ReadKey.Close();
Microsoft.Win32.Registry.CurrentUser.Close();
}
}
catch (Exception)
{
return false;
}
return true;
}
private string getDirPathFromRegistry()
{
try
{
Microsoft.Win32.RegistryKey software = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE", true);
Microsoft.Win32.RegistryKey ReadKey = software.OpenSubKey("FolderPath", true);
string path = ReadKey?.GetValue("OpenFolderDir")?.ToString();
return path;
}
catch (Exception)
{
//TO DO
}
return null;
}
使用方法参考:
string sRegDir = getDirPathFromRegistry();
string strPath = sRegDir;
if (sRegDir == null || sRegDir.Length == 0)
{
strPath = System.IO.Directory.GetCurrentDirectory();
}
在成功打开的位置保存目录:
//将目录保存到注册表
FileInfo fi = new FileInfo(filePath);
dirPathSaveToRegistry(fi.Directory.ToString());
记住路径还可以采用配置文件的方法,因为某些情况下用户可能不希望软件对注册表进行操作。
在C#中,你可以使用配置文件或数据库来记住上次打开的路径。以下是一个简单的示例,使用配置文件来记住上次的路径:
首先,添加一个配置文件(如果你的应用程序是Windows Forms应用程序,可以使用app.config;如果是其他类型的应用程序,可以使用其他方式,如JSON文件或者INI文件)。
<!-- app.config -->
<configuration>
<appSettings>
<add key="LastOpenPath" value="默认路径"/>
</appSettings>
</configuration>
然后,在C#代码中读取和更新这个配置:
using System.Configuration;
// 读取上次保存的路径
string lastOpenPath = ConfigurationManager.AppSettings["LastOpenPath"];
// 更新路径
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["LastOpenPath"].Value = "新路径";
config.Save(ConfigurationSaveMode.Modified);
// 强制重新加载配置
ConfigurationManager.RefreshSection("appSettings");
在你的应用程序启动时,读取这个配置项,在用户选择了一个新路径后,更新这个配置项。这样,下次应用程序启动时,就会记住上次的路径。