目前我正在使用以下功能来获取当前用户的临时文件夹路径:
string tempPath = System.IO.Path.GetTempPath();
在一些机器上,它给了我当前用户的临时文件夹路径:
C:\Documents and Settings\管理员\本地设置\Temp\
在一些机器上,它会给我系统临时文件夹路径,如:
C:\Windows\TEMP
MSDN文档还说上述API返回当前系统的临时文件夹。
是否有其他API可以给我当前用户的临时文件夹路径,就像这样:
C:\Documents and Settings\管理员\本地设置\Temp\
System.IO.Path.GetTempPath()只是Kernel32中GetTempPath(..)本机调用的包装器。
看看http://msdn.microsoft.com/en-us/library/aa364992(VS.85).aspx
抄自那一页:
GetTempPath函数按照以下顺序检查是否存在环境变量,并使用找到的第一个路径:
TMP环境变量指定的路径。
由TEMP环境变量指定的路径。
由USERPROFILE环境变量指定的路径。
Windows目录。
我不完全清楚“Windows目录”是指Windows下的临时目录还是Windows目录本身。在windows目录中转储临时文件本身听起来像一个不受欢迎的情况,但谁知道呢。
所以结合这个页面和你的帖子,我猜你的管理员用户的TMP, TEMP或USERPROFILE变量中的一个指向windows路径,或者它们没有设置,它正在退回到windows TEMP路径。