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

のような文字列を受け取り、@"%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 に答える