Ano*_*oop 384 .net c# temporary-directory
目前我正在使用以下函数来获取当前用户的临时文件夹路径:
string tempPath = System.IO.Path.GetTempPath();
Run Code Online (Sandbox Code Playgroud)
在某些机器上它给我当前用户的临时文件夹路径,如:
C:\ Documents and Settings\administrator\Local Settings\Temp \
在某些机器上它给我系统临时文件夹路径,如:
C:\ WINDOWS\TEMP
MSDN文档还说上面的API返回当前系统的临时文件夹.
是否有任何其他API可以为我提供当前用户的临时文件夹路径,如下所示:
C:\ Documents and Settings\administrator\Local Settings\Temp \
Nia*_*ton 397
System.IO.Path.GetTempPath()
只是GetTempPath(..)
Kernel32中本机调用的包装器.
看看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临时路径.
Hel*_*len 29
不要使用这个:
System.Environment.GetEnvironmentVariable("TEMP")
Run Code Online (Sandbox Code Playgroud)
可以覆盖环境变量,因此TEMP
变量不一定是目录.
正确的方法是System.IO.Path.GetTempPath()
在接受的答案中使用.
IAb*_*act 21
我有同样的要求 - 我们希望将日志放在环境中应该存在的特定根目录中.
public static readonly string DefaultLogFilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
Run Code Online (Sandbox Code Playgroud)
如果我想将它与子目录结合起来,我应该可以使用Path.Combine( ... )
.
该GetFolderPath
方法具有特殊文件夹选项的重载,允许您控制是创建指定路径还是仅验证.
归档时间: |
|
查看次数: |
300324 次 |
最近记录: |