【问题标题】:How to create a directory in %appdata%如何在 %appdata% 中创建目录
【发布时间】:2016-05-18 05:56:22
【问题描述】:

我想在 %appdata% 文件夹中创建一个目录。这是我目前所拥有的:

public MainForm() {
    Directory.CreateDirectory(@"%appdata%\ExampleDirectory");
}

这不起作用,但它也不会崩溃或显示任何类型的错误。我该怎么做呢?我做过研究,如果我使用实际路径,它确实有效:

Directory.CreateDirectory(@"C:\Users\username\AppData\Roaming\ExampleDirectory");

但是,当我使用 %appdata% 时它不起作用。这是有问题的,因为我不知道使用该程序的人的用户名,所以我不能使用完整路径。

我也试过这个:

var appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var Example = Path.Combine(appdata, @"\Example");
Directory.CreateDirectory(Example);

它也不起作用

【问题讨论】:

标签: c# directory


【解决方案1】:
string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

// Combine the base folder with your specific folder....
string specificFolder = Path.Combine(folder, "YourSpecificFolder");

// Check if folder exists and if not, create it
if(!Directory.Exists(specificFolder)) 
    Directory.CreateDirectory(specificFolder);

【讨论】:

    【解决方案2】:

    试试:

    string example = Environment.ExpandEnvironmentVariables(@"%AppData%\Example");
    Directory.CreateDirectory(example);
    

    Environment.ExpandEnvironmentVariables() 会将环境变量AppData 替换为其值,通常为C:\Users\<Username>\Appdata\Roaming

    要获取环境变量列表,请从命令行运行不带参数的 set 命令。

    【讨论】:

    • 您能否提供有关该解决方案的更多信息?
    【解决方案3】:

    这样的?

     var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    var path = Path.Combine(appData, @"\ExampleDirectory");
    Directory.CreateDirectory(path);
    

    【讨论】:

    • 这个string path = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData), "ExampleDirectory"); if(!Directory.Exists(path)) Directory.CreateDirectory(path);怎么样
    【解决方案4】:

    您可以使用Environment.GetFolderPath()Environment.SpecialFolder.ApplicationData

    string appDatafolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
    string folder = Path.Combine(appDatafolder, "ExampleDirectory");
    Directory.CreateDirectory(folder);
    

    这将在C:\Users\<userName>\AppData\Roaming 下创建文件夹。

    使用SpecialFolder.LocalApplicationData 将改为使用AppData\Local

    要获取AppData,请仅使用:

    string appDatafolder = Path.GetDirectoryName(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)));
    

    有关详细信息,请参阅 MSDN 上的 Environment.SpecialFolderEnvironment.GetFolderPath()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多