如何为当前用户获取临时文件夹

目前,我正在使用如下功能来获取当前用户的临时文件夹路径: 函数

string tempPath = System.IO.Path.GetTempPath();

在某些计算机上,它为我提供了当前用户的临时文件夹路径,例如: spa

C:\\ Documents and Settings \\ administrator \\ Local Settings \\ Temp \\ 日志

在某些计算机上,它为我提供了系统临时文件夹路径,例如: code

C:\\ Windows \\ TEMP ci

MSDN文档还说,上述API返回当前系统的临时文件夹。 文档

是否有其余可用的API能够给我当前用户的临时文件夹路径,以下所示: get

C:\\ Documents and Settings \\ administrator \\ Local Settings \\ Temp \\ string


#1楼

我也有一样的要求-咱们想将日志放在环境中应该存在的特定根目录中。 io

public static readonly string DefaultLogFilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

若是要将其与子目录结合使用,则应该可使用Path.Combine( ... )变量

GetFolderPath方法的特殊文件夹选项有一个重载,它使您能够控制是建立指定的路径仍是直接验证指定的路径。


#2楼

尝试

Environment.GetEnvironmentVariable("temp");

#3楼

请勿使用此:

System.Environment.GetEnvironmentVariable("TEMP")

能够覆盖环境变量,所以TEMP变量不必定是目录。

正确的方法是按照接受的答案使用System.IO.Path.GetTempPath()


#4楼

System.IO.Path.GetTempPath()只是Kernel32中对GetTempPath(..)的本机调用的包装。

看看http://msdn.microsoft.com/en-us/library/aa364992(VS.85).aspx

从该页面复制:

GetTempPath函数按如下顺序检查是否存在环境变量,并使用找到的第一个路径:

  • 由TMP环境变量指定的路径。
  • TEMP环境变量指定的路径。
  • USERPROFILE环境变量指定的路径。
  • Windows目录。

对我来讲,“ Windows目录”是指Windows下的temp目录仍是Windows目录自己,还不是很清楚。 在Windows目录中转储临时文件自己听起来像是不受欢迎的状况,但谁知道呢。

所以,将该页面与您的帖子结合在一块儿,我会猜出您的Administrator用户的TMP,TEMP或USERPROFILE变量之一指向Windows路径,不然未设置它们,而且回退到Windows临时路径。

相关文章
相关标签/搜索