hur.cn - 华软网

 热门搜索

获取系统临时文件夹遇到问题

  作者:未知    来源:网络    更新时间:2011/4/16
我用GetTempPath();来猎取temp路径,获得的时一个带~1的路径("C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\")。是否有措施转换成绝对路径,也就是不带~1的路径名。
---华软 网友回答---
用GetEnvironmentVariable猎取Temp tmp环境变量试试
---华软网友回复---
引用 1 楼 huangcheng90 的回复:
用GetEnvironmentVariable猎取Temp tmp环境变量试试

或读取注册表也能够实现
---华软网友回复---
GetLongPathName 转换一下即可

---华软网友回复---
如何猎取系统的临时目录路径?
  GetTempPath取得的是一个DOS名称,当资料名长度大于8时,长资料名格式“C:\Documents and Settings\Administrator\Local Settings\Temp”会显示成“C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp”的短资料名格式,如何根据自己需要取得系统临时目录的途径,下面是一个新写的函数,调用两个API 实现,相信许多朋友可能用获得。 

Option Explicit 
** Declare Function GetLongPathName Lib "kernel32" Alias "GetLongPathNameA" (ByVal lpszShortPath As String, ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long 
** Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 


Sub GetTEMPfolder(Optional ByVal showlong As Boolean = True) 

Dim longname As String, shortname As String 

shortname = Space(256) 
GetTempPath Len(shortname), shortname 

longname = Space(1024) 
GetLongPathName shortname, longname, Len(longname) 



MsgBox "Tempfolder : "

---华软网友回复---
                TCHAR ee[256];
CHAR dd[256];
TCHAR Name[256];
GetTempPathA( 256,dd);
// ::GetModuleFileName(NULL, dd, 256);
// sprintf(szW,L"%s", dd);
         MultiByteToWideChar(CP_ACP, 0, dd, -1, Name, 256);

        GetLongPathName( Name,ee,256);
照上面代码写,ee就是你要的!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。