Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

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

Re: Langen Pfadnamen ermitteln?

  Alt 6. Okt 2008, 11:03
Dieses wäre auch noch eine Variante : (ist nicht von mir !!)
Delphi-Quellcode:
(* ---------------------------------------------
  Convert short DOS-style path to long path
  --
  Required units: ShlObj, ActiveX
--------------------------------------------- *)


function short_to_long_Path(ShortPathName : String) : String;
var
   PIDL: PItemIDList;
   Desktop: IShellFolder;
   WidePathName: WideString;
   AnsiPathName: AnsiString;
begin
     Result := ShortPathName;

     if Succeeded(SHGetDesktopFolder(Desktop)) then
     begin
          WidePathName := ShortPathName;
          if Succeeded(Desktop.ParseDisplayName(0, nil, PWideChar(WidePathName), ULONG(nil^), PIDL, ULONG(nil^))) then
          begin
               try
                  SetLength(AnsiPathName, MAX_PATH);
                  SHGetPathFromIDList(PIDL, PChar(AnsiPathName));
                  Result := PChar(AnsiPathName);
               finally
                      CoTaskMemFree(PIDL);
               end;
          end;
     end;
end;
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat