当前,我使用Path.GetTempPath()来确定将日志文件写入何处,但是最近我遇到了一个用户的计算机,该计算机返回的路径不是我期望的。

通常,返回的路径是 C:\Documents and Settings\[userid]\Local Settings\Temp
但是在这种情况下,它是 C:\Temp

通常这不是问题,但是由于某种原因,相关用户无权写入 C:\Temp

我仔细检查了环境变量,并且USER环境变量按预期指向 C:\Documents and Settings\[userid]\Local Settings\Temp ,而SYSTEM环境变量指向 C:\WINNT\Temp

所以... Path.GetTempPath()从哪里获得它的值(value)?组策略?注册表?

我已经谷歌搜索,但无济于事。

最佳答案

(使用Reflector)Path.GetTempPath()最终调用Win32函数GetTempPath(来自kernel32.dll)。此状态的MDSN文档:

请注意,他们还指出并不检查路径是否实际存在或可以写入,因此您可能最终尝试将日志文件写入不存在的路径或无法访问。

关于c# - 什么决定Path.GetTempPath()的返回值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2365307/

10-09 05:49