c#代码中无法识别任何环境有效路径,如%TEMP%



我对这个问题感到非常沮丧,我知道如何解决它。我想这是在一些windows更新之后发生的,因为它以前运行得很好。我的操作系统是WINDOWS 11 Pro 22H2操作系统版本号22621.674因此,当您尝试访问任何环境注册的文件夹(如%<文件夹>%C#代码返回应用程序根文件夹中的路径。示例

new DirectoryInfo("%TEMP%") //=>result: "<AppRootPath>%TEMP%"

Path.GetFullPath("%USERPROFILE%") //=>result: "<AppRootPath>%USERPROFILE%"

在我的解决方案中,我在开发环境的%temp%文件夹上有一些设置,现在真的很难在调试后删除解决方案目录中所有这些新的%temp%文件夹。

我还发现,当我试图在命令行中执行"cd%TEMP%"时,它的工作方式类似于sharm,但如果我在powershel中也这样做,它会返回未找到文件夹的错误,同时"cd$env:TEMP"也能正常工作。

我想再次强调,它以前运作良好。

希望你们中的一些人能帮助我解决这个奇怪的问题。提前谢谢。

您可以使用Environment。展开环境变量。来自MSDN:

替换嵌入指定的字符串,该字符串等效于变量,然后返回结果字符串。

在您的代码中:

new DirectoryInfo(Environment.ExpandEnvironmentVariables("%TEMP%"))

最新更新