VB.NET获取用户临时文件夹路径异常问题求助
解决VB.NET获取用户临时文件夹路径出现短名的问题
不要自行拼接临时文件夹路径,直接调用系统API获取完整路径就能避免短名(如EDUARD~1)问题,以下是两种可靠实现方式:
方式一:基于LocalApplicationData拼接Temp
LocalApplicationData本身指向C:\Users\EduardoPC\AppData\Local,直接拼接Temp即可得到完整长路径:Dim PersonalTemp As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Temp\"方式二:直接读取TEMP环境变量
系统TEMP环境变量存储的就是当前用户临时文件夹的完整路径,直接读取即可:Dim PersonalTemp As String = Environment.GetEnvironmentVariable("TEMP")
如果需要确保路径为标准长文件名格式,可结合Path.GetFullPath处理:
Imports System.IO ' ... Dim PersonalTemp As String = Path.GetFullPath(Environment.GetEnvironmentVariable("TEMP"))
原方法返回短名的原因
- 第一种方法通过
UserProfile拼接,当系统返回用户目录的短名时,拼接后的路径自然包含短名; - 第二种方法用
SystemInformation.UserName拼接,若用户文件夹名称与登录用户名存在差异(比如系统自动生成了短名),拼接路径就会出错。
内容的提问来源于stack exchange,提问作者aandre4321
相关产品推荐
相关产品推荐

