gpt4 book ai didi

C# Path.Combine 没有使用 AppData 位置

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:55 24 4
gpt4 key购买 nike

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

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

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

sPath: "C:\\Users\\[user]\\AppData\\Roaming"
test: "\\Microsoft\\Windows\\Start Menu\\SkillControl\\"

我期待“测试”产生完整路径:

C:\\Users\\[User]\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\SkillControl\\

但是好像忽略了combine的功能。任何人都可以找出原因吗?

在询问之前澄清一下,sPath 只是我确认 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 是否拉到正确位置的一种方式是的,我在做

时得到了相同的结果
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), 
@"Microsoft\Windows\Start Menu\SkillControl\"));

最佳答案

您的第二条路径是绝对路径 - 它以反斜杠开头。该方法正在运行 as documented :

If path2 contains an absolute path, this method returns path2.

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

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

关于C# Path.Combine 没有使用 AppData 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50513427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com