Fonctions path_win_to_msdos et path_msdos_to_win meme pour les fichiers/repertoires en reseau!!!

Contenu du snippet

2 fonctions qui vous permettent de convertir des chemins (de fichiers ou de repertoires) du format MS-DOS (8 caracteres max. pour le nom et 3 pour l' extension) vers le format win32 et vis versa!
Fonctionne même avec les unités reseau.
Cette fois, le code est bien de moi même si je me suis basé sur diverses exemples ...

Source / Exemple :


function PATH_WIN_TO_MSDOS(PathComprido : String) : String;
var aTmp: array[0..MAX_PATH] of char;    // MAX_PATH = 260 ...
begin
  if GetShortPathName(PChar(PathComprido),aTmp,Sizeof(aTmp)-1)=0
  then Result:= ''
  else Result:=StrPas(aTmp);
end;

function PATH_MSDOS_TO_WIN(PathCurto : String) : String;
var aInfo: TSHFileInfo;
    FileDrive: ShortString;
begin
  RESULT := '';

  if PathCurto <> ''
  then begin
    FileDrive := ExtractFileDrive(PathCurto) + '\';

    // Retirer la barre à la fin :
    if PathCurto[length(PathCurto)] = '\'
    then PathCurto := Copy(PathCurto, 1, length(PathCurto) - 1);

    While (Length(PathCurto) > Length(FileDrive))
      And (SHGetFileInfo(PChar(PathCurto),0,aInfo,Sizeof(aInfo),SHGFI_DISPLAYNAME)<>0) do
    begin
      if RESULT = ''
      then Result := String(aInfo.szDisplayName)
      else Result := String(aInfo.szDisplayName) + '\' + RESULT;

      PathCurto := ExtractFileDir(PathCurto);    // Rechercher le nom long du repertoire contenant le fichier/repertoire actuel ...
    end;

    RESULT := FileDrive + RESULT;
  end;
end;

Conclusion :


C' est une amelioration des 2 fonctions que j' ai mis en commentaire sur une source du meme objectif.
Cette fois, le code est bien de moi même si je me suis basé sur diverses exemples ...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.