确定当前用户的临时文件夹
问题:
使用 System.IO 时。 Path.GetTempPath() 检索临时文件夹路径,接收之间观察到不一致当前用户的临时文件夹和系统的临时文件夹。有没有专门提供当前用户临时文件夹路径的替代方法?
答案:
理解 GetTempPath() 函数:
System.IO.Path.GetTempPath() 是本机 GetTempPath() 函数的包装器内核32。根据 MSDN,该函数按以下顺序优先考虑环境变量:
解决不一致:
如果 TMP、TEMP 或 USERPROFILE 变量之一指向 Windows 路径,特别是其临时目录,则可能会出现临时文件夹路径不一致。
替代方法:
虽然没有专门提供当前用户的临时文件夹路径,可以利用前面讨论的环境变量来构造它:
代码示例:
string userTempPath; // Check the USERPROFILE variable first if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("USERPROFILE"))) { userTempPath = Path.Combine(Environment.GetEnvironmentVariable("USERPROFILE"), "Local Settings", "Temp"); } // Check the TMP/TEMP variables if USERPROFILE is not defined or valid else { string tempVar = Environment.GetEnvironmentVariable("TMP"); if (string.IsNullOrEmpty(tempVar)) { tempVar = Environment.GetEnvironmentVariable("TEMP"); } if (!string.IsNullOrEmpty(tempVar) && Directory.Exists(tempVar)) { userTempPath = tempVar; } } if (!string.IsNullOrEmpty(userTempPath)) { // At this point, userTempPath should contain the current user's temporary folder path }
以上是C#中如何可靠获取当前用户的临时文件夹路径?的详细内容。更多信息请关注PHP中文网其他相关文章!