读书人

Delphi 获取特殊目录有关问题

发布时间: 2012-05-05 17:21:10 作者: rapoo

Delphi 获取特殊目录问题
很久之前就注册了这个ID ,一直都没有发过帖子,新手第一次发帖。哈哈....大家多多指教。

先上源码,好分析问题。

[code=Delphi(Pascal)][/code]

procedure TForm1.Button1Click(Sender: TObject);
var
pidl: PItemIDList;
s : string;
begin
SetLength(s,100);
SHGetSpecialFolderLocation(handle,CSIDL_DRIVES,pidl);
SHGetPathFromIDList(pidl,pchar(s));
ShowMessage(s);
OpenDialog1.InitialDir:= s; //用来测试目录是否正确
OpenDialog1.Execute;
end;


用2个API函数SHGetSpecialFolderLocation(),SHGetPathFromIDList() 这个获取系统桌面、我的文档等目录没有问题,但是获取我的电脑等有的目录就得不到了,这还是真的怪了,还请大家帮忙看看。

[解决办法]
操作系统上有些是虚的文件夹,不是文件系统的一部分,所以SHGetPathFromIDList是取不到的
比如:
CSIDL_DRIVES 我的电脑
CSIDL_BITBUCKET 回收站
CSIDL_NETWORK 网上邻居

...等等

读书人网 >.NET

热点推荐