3

これを使用してファイルをコピーしようとしています-

 private void button1_Click(object sender, EventArgs e)
    {
        Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
        if (File.Exists(@"C:\Users\%UserProfile%\AppData\Roaming\.minecraft\bin\minecraft.jar"))
            try
            {                  
                File.Copy(@"C:\Users\%UserProfile%\AppData\Roaming\.minecraft\bin\minecraft.jar", @"C:\Users\%UserProfile%\Documents\MinecraftBackup\minecraft.jar", true);
            }

%UserProfile% を実際のユーザー名に変更しないと機能しません。これを修正するにはどうすればよいですか?

4

3 に答える 3

2
var s = @"C:\Users\%UserProfile%\AppData\Roaming\";
var s2 = Environment.ExpandEnvironmentVariables(s);

s2には拡張データがあります

于 2012-05-07T20:02:25.867 に答える
2

それ以外の:

C:\Users\%UserProfile%\AppData\Roaming\.minecraft\bin\minecraft.jar

試す

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
             @".minecraft\bin\minecraft.jar")

実際、「 」が表示された場合はいつでも、「C:\Users\%UserProfile%\AppData\Roaming\」を使用する必要がありますEnvironment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

于 2012-05-07T19:49:25.547 に答える
0

この%userprofile%変数には、ドライブのルートまでさかのぼるフル パスが含まれます。

C:\Windows\System32>echo %userprofile%
C:\Users\[myusername]
于 2012-05-07T19:50:10.443 に答える