在%AppData%中创建C#目录

6
我希望在AppData/Roaming/test路径下创建目录(如果不存在)。但是我的代码无法运行,我不知道为什么。能帮忙吗?
        string path;
        path = @"%AppData%\Roaming\test\";
        path = Environment.ExpandEnvironmentVariables(path);
        Console.WriteLine(path);

        if (!Directory.Exists(path))
            Directory.CreateDirectory(path);

这段代码无法创建目录。


方法CreateDirectory返回类型为System.IO.DirectoryInfo的值。你在那里得到什么? - TarasB
写入控制台的内容是什么? - H H
2个回答

11

%AppData%是一个SpecialFolder

将您的代码从以下内容进行更改:


path = @"%AppData%\Roaming\test\";

至:

var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var path = Path.Combine(appDataPath, @"test\");
if (!Directory.Exists(path))
        Directory.CreateDirectory(path);

1

您应该使用 Environment.SpecialFolders 来访问特殊文件夹,而不是直接硬编码路径。

像这样的代码可以解决问题:

string path = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData), "test");

if (!Directory.Exists(path))
{
    Directory.CreateDirectory(path);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接