1

我需要帮助将当前记录的 %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 and settings\%USERPFORILE%\Local Settings\Temp

4

4 回答 4

5

只是想补充一点,虽然这Environment.SpecialFolder.UserProfile是对您的特定问题的一个很好的答案,但还有另一个适用于所有环境变量的选项,而不仅仅是那些具有SpecialFolder访问器的选项:Environment.ExpandEnvironmentVariables.

它将接受一个字符串,例如 your @"%USERPROFILE%\Local Settings\TEST",并返回一个扩展了所有 %% 环境变量的新字符串。

于 2013-11-07T07:39:24.033 回答
4

这个怎么样:

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");
    }
}
于 2013-11-07T06:40:59.447 回答
0

我认为这就是你真正想要的:

String appData = 
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

Local Setting如果您想存储数据或做某事,请使用它而不是 Code文件夹。

(正如我的评论所说,本地设置文件夹受到保护,这样您将无法打开它)

于 2013-11-07T07:30:59.123 回答
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

于 2015-09-15T06:03:37.820 回答