读书人

用GetTempPath获取路径,该怎么处理

发布时间: 2013-01-25 15:55:29 作者: rapoo

用GetTempPath获取路径
用GetTempPath获取路径
获取出来是这样的C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
我想得到这样的
C:\Documents and Settings\Administrator\Local Settings\Temp
如何转换呢
[解决办法]
GetFullPathName
[解决办法]
好像没有短文件名转长文件名的函数吧。。
[解决办法]
需要引用ShlObj,代码如下


procedure TForm1.Button1Click(Sender: TObject);
var
sFolder: IShellFolder;
pIDList: PITEMIDLIST;
fullPath: WideString;
Len: integer;
buffer: array [0 .. MAX_PATH] of Char;
pchEaten, Attributes: ULONG;
begin
Len := GetTempPathW(0, nil);
SetLength(fullPath, Len);
GetTempPathW(Len, @fullPath[1]);
SHGetDesktopFolder(sFolder);
sFolder.ParseDisplayName(0, nil, @fullPath[1], pchEaten, pIDList, Attributes);
SHGetPathFromIDList(pIDList, buffer);
ShowMessage(buffer);
end;

读书人网 >.NET

热点推荐