Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: Problem beim Ermitteln von Verzeichnissen über CSIDL

  Alt 4. Jun 2007, 19:56
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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat