我需要帮助将当前记录的%USER%添加到路径中,这是我目前的代码:
DirectoryInfo dir = new DirectoryInfo(@"%USERPROFILE%\Local Settings\TEST");
foreach (FileInfo files in dir.GetFiles())
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
dirs.Delete(true);
}
如何让他以%USERPROFILE%作为当前用户? 我想要一个例子来解决问题,顺便说一句,我想用它来删除C:\ Document和settings \%USERPFORILE%\ Local Settings \ Temp
答案 0 :(得分:4)
只是想补充一点,虽然Environment.SpecialFolder.UserProfile
对您的具体问题是一个很好的答案,但还有另一个选项适用于所有环境变量,而不仅仅是那些具有SpecialFolder
访问者的变量:{{3 }}。
它会占用一个字符串,就像你的@"%USERPROFILE%\Local Settings\TEST"
一样,并返回一个新的字符串,其中扩展了所有%%环境变量。
答案 1 :(得分:3)
这个怎么样:
void Main()
{
string userProfile = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string subFolder = @"Local Settings\TEST";
string path = Path.Combine(userProfile, subFolder);
DirectoryInfo di = new DirectoryInfo(path);
if (di.Exists)
{
Console.WriteLine("Deleting " + di);
di.Delete(true);//recursive
}
else
{
Console.WriteLine("Directory " + di + " was not found");
}
}
答案 2 :(得分:0)
我认为这就是你真正想要的:
String appData =
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
如果要存储数据或执行某些操作,请使用该文件夹而不是代码Local Setting
文件夹。
(正如我的评论所说,本地设置文件夹受到保护,这样你将无法打开它)
答案 3 :(得分:0)
最好的方法是使用Environment.ExpandEnvironmentVariables
void Main() {
string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\Local Settings\TEST");
DirectoryInfo dir = new DirectoryInfo(path);
foreach (FileInfo files in dir.GetFiles())
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
dirs.Delete(true);
}
}
https://msdn.microsoft.com/en-us/library/system.environment.expandenvironmentvariables.aspx