您好,我正在使用Delphi FM2和XE3在Windows 8上进行开发。
我的问题是,我希望用户按下按钮后能够导航到位于AppData中的子文件夹,例如C:\ Users \ Kobus \ AppData \ Roaming.minecraft。
由于每个用户的用户名都不同,因此这种方法行不通。
所以我使用以下代码来获取用户名:
function GetCurrentUserName : string;
const
cnMaxUserNameLen = 254;
var
sUserName : string;
dwUserNameLen : DWord;
begin
dwUserNameLen := cnMaxUserNameLen-1;
SetLength( sUserName, cnMaxUserNameLen );
GetUserName(PChar( sUserName ),dwUserNameLen );
SetLength( sUserName, dwUserNameLen );
Result := sUserName;
end;
username := GetCurrentUserName;
然后我运行ShowMessage('C:\Users\'+username+'\AppData\Roaming\.minecraft\saves\');
查看输出。
但是我得到的输出是:'C:\Users\Kobus',因为某种原因其余路径名称丢失了。
我需要显示的是:'C:\Users\'Kobus'\AppData\Roaming.minecraft\saves\'。
谢谢。
C:\Documents and Settings\<username>
等路径。但即使你知道用户名,也不一定知道该路径是什么。可以使用SHGetSpecialFolderPath
函数来获取该路径。 - Andreas Rejbrand