获取常用系统文件目录
static void Main(string[] args)
{//1、通过 Environment.GetFolderPath() 获取
string pathFavorites = Environment.GetFolderPath(Environment.SpecialFolder.Favorites);// 获取我的收藏路径
Console.WriteLine("Favorites:" + pathFavorites);
string pathDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);// 获取桌面路径
Console.WriteLine("Desktop:" + pathDesktop);
string pathMyDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);// 获取我的文档路径
Console.WriteLine("MyDocuments:" + pathMyDocuments);
string pathMyPictures = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);// 获取我的图片路径
Console.WriteLine("MyPictures:" + pathMyPictures);
string pathMyVideos = Environment.GetFolderPath(Environment.SpecialFolder.MyVideos);// 获取我的视频路径
Console.WriteLine("MyVideos:" + pathMyVideos);
string pathDownloads = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads";// 获取下载路径(这个没有找到,所以需要配合 UserProfile 来拼接了)Console.WriteLine("Downloads:" + pathDownloads);
//2、通过环境变量获取
string tempPath = Environment.GetEnvironmentVariable("TEMP");
Console.WriteLine("TEMP:" + tempPath);
Console.ReadKey();}
设置开机启动
private string registryName = "BootTestDemo";// 启动项的名称
private void btnSubmit_Click(object sender, EventArgs e)
{if (this.ckBootEntry.Checked)
{
string filePath = Environment.CurrentDirectory + "\\PowerBootDemo.exe";
SetBoot(this.registryName, filePath);
}
else
{DeleteBoot(this.registryName);
}
MessageBox.Show("Success");
}
/// <summary>
/// 检测注册项是否存在
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
private bool CheckExisting(string key)
{string[] allNames = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run").GetValueNames();
foreach (var item in allNames)
{if (item.Equals(key))
{return true;}
}
return false;
}
/// <summary>
/// 设置启动项
/// </summary>
private void SetBoot(string key, string path)
{if (CheckExisting(this.registryName)) return;// 检测是否存在
Microsoft.Win32.RegistryKey registryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");// 在系统启动的注册表中创建子项
registryKey.SetValue(key, path);// 为子项进行赋值
}
/// <summary>
/// 删除启动项
/// </summary>
public void DeleteBoot(string key)
{if (!CheckExisting(this.registryName)) return;// 检测是否存在
Microsoft.Win32.RegistryKey registryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
registryKey.DeleteValue(key, false);
}
//PS:如果记不住这么长的路径可以直接打开系统注册表编辑器来翻看(cmd 执行:regedit)。
持续更新 ….