【问题标题】:C# create dir in %AppData%C# 在 %AppData% 中创建目录
【发布时间】:2015-05-03 11:48:25
【问题描述】:

我想在路径 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类型的值。你在那里得到什么?
  • 将什么写入控制台?

标签: c# directory


【解决方案1】:

%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);

【讨论】:

    【解决方案2】:

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

    这样的事情可以解决问题:

    string path = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData), "test");
    
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      • 2012-09-29
      • 1970-01-01
      相关资源
      最近更新 更多