为什么我无法为 C# 项目中的下载设置 %USERPROFILE%?



我正在研究一个程序,该程序从Internet检索文件。当我设置下载路径时,要么什么都没有发生,要么是Visual Studio告诉我我的路径无法写入。这是我尝试过的路径:

(@"%USERNAME%Downloads");
(@"%USERPROFILE%Downloads");
(@"C:Users%USERNAME%Downloads");
(@"C:Users%USERPROFILE%Downloads");

甚至陌生的是,使用(@"%USERPROFILE%Downloads");将下载的文件放在一个名为%USERPROFILE%的文件夹中的文件夹中。在没有问题之前,我在批处理脚本中使用了%USERPROFILE%,在C#中是否有不同的通配符?我在这里缺少什么?

c#不会自动从字符串扩展环境变量。这样做可能会在其他问题上产生严重的安全影响。

在尝试文件操作之前,您需要使用Environment.ExpandEnvironmentVariables方法,例如;

using system;
void Main()
{  
    String DownloadPath= @"%USERPROFILE%Downloads";
    String ExpandedDownloadPath = Environment.ExpandEnvironmentVariables(DownloadPath);
    Console.WriteLine("ExpandedPath: {0}", ExpandedDownloadPath);
}

显然,这更多是一个stackoverflow(编程(问题

%variablename%是批处理语法。在C#中,您必须手动解析环境变量。

请参阅https://msdn.microsoft.com/de-de/library/77zkkk0b6(v = vs.110(.aspx

i使用:

String DownloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\Downloads";

最新更新