C#Path.Combine未使用AppData位置

Ben*_*n R 1 c#

我正在尝试访问AppData文件夹以根据需要创建/删除目录,但使用Path.Combine只产生所需路径的一半.这就是我所拥有的:

string sPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string test = Path.Combine(sPath, @"\Microsoft\Windows\Start Menu\SkillControl\");
Run Code Online (Sandbox Code Playgroud)

测试字符串代替Directory.CreateDirectory下一行(工作时).以下是调试这些行的结果:

sPath: "C:\\Users\\[user]\\AppData\\Roaming"
test: "\\Microsoft\\Windows\\Start Menu\\SkillControl\\"
Run Code Online (Sandbox Code Playgroud)

我期待"测试"导致完整的路径:

C:\\Users\\[User]\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\SkillControl\\
Run Code Online (Sandbox Code Playgroud)

但它似乎忽略了组合功能.任何人都可以找出原因吗?

在被问到之前要澄清一下,sPath这只是我确认是否Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)拉出正确位置的一种方式,我在做的时候会得到相同的结果

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
@"Microsoft\Windows\Start Menu\SkillControl\"));
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

你的第二条路径是绝对路径 - 它以反斜杠开头.该方法表现如下:

如果path2包含绝对路径,则此方法返回path2.

只需删除前导反斜杠即可.

string sPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string test = Path.Combine(sPath, @"Microsoft\Windows\Start Menu\SkillControl\");
Run Code Online (Sandbox Code Playgroud)