Zitat von
Mazel:
Delphi-Quellcode:
function TMain.GetShellFolder(
const CSIDL: Byte):
String;
var
PIDL : PItemIdList;
Malloc : IMalloc;
begin
if (SHGetMalloc(Malloc) = S_OK)
and (SUCCEEDED(SHGetSpecialFolderLocation(
Handle, CSIDL, PIDL)))
then
try
SetLength(Result, MAX_PATH + 1);
if (SHGetPathFromIDList(PIDL, PChar(Result)))
and (PChar(Result) <> '
')
then Result := IncludeTrailingPathDelimiter(PChar(Result))
else Result := '
';
finally
Malloc.Free(pidl);
end
else Result := '
';
end;
Ich würde das result ändern, dass kein Leer String zurückkomt sondern eine Antwort wie "kein Verzeichnis gefunden". Damit könntest Du zumindext die IF-Abfrage mit Directory-Exists überlisten.
Wo wird i erhöht und initialisiert ?