【问题标题】:Read content of %APPDATA% [duplicate]读取 %APPDATA% 的内容 [重复]
【发布时间】:2014-07-19 01:44:09
【问题描述】:

如果我在 Windows 资源管理器中输入 %APPDATA%\Skype,那么 Windows 资源管理器会显示 C:\Users\Stevew\AppData\Roaming\Skype 的内容。

但是如果我在 C# 中这样做

Directory.GetFiles(@"%APPDATA%\Skype");

然后我得到一个异常说Could not find a part of the path 'C:\\Users\\Stevew\\Documents\\Visual Studio 2010\\Projects\\TestSkype\\TestResults\\Stevew_PC 2014-05-29 15_45_30\\Out\\%APPDATA%\\Skype'

我想%APPDATA%-part 没有被解析。如何使用这种语法读取C:\Users\Stevew\AppData\Roaming\Skype的内容?

我知道Environment.SpecialFolder.ApplicationData,但我想在这种情况下使用%SOMETHING%-syntax,我希望能够使用任何环境变量。我试过搜索,但我真的不知道要搜索什么。

【问题讨论】:

  • %APPDATA% 是一个 Windows shell 的东西。 .NET 库不知道这种语法。
  • @huMptyduMpty OP 发布说他不想使用那种语法。 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
  • @abhi:我没有回答问题!!!这是一条评论,因为是引导用户走向正确的道路,我的意思是使用Environment.GetFolderPath
  • 试试这个:string AppData = Environment.ExpandEnvironmentVariables("%AppData%");

标签: c#


【解决方案1】:

看看Environment.ExpandEnvironmentVariables:

var path = Environment.ExpandEnvironmentVariables(@"%APPDATA%\Skype");

应该返回所需的值。

【讨论】:

  • +1 为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2022-01-15
  • 2011-10-28
  • 2016-12-19
  • 1970-01-01
相关资源
最近更新 更多