Ftp avec Indy

cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 - 10 juil. 2003 à 14:36
cs_Doom Messages postés 8 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 14 août 2003 - 14 août 2003 à 15:52
Salut tout le monde,

Je suis en train de faire un mini client ftp et j'ai un petit souci avec le composant indy tidftp.

dans une boucle je liste chacun des fichiers et répertoires trouvés sur le serveur... Mais avec le idftp.list en mode false

Et j'aimerais savoir s'il est possible, malgré le fait qu'il n'y est donc pas les infos du serveur affichées, de savoir si ce qui est listé est un répertoire ou un fichier.

Question pas facile.

Merci d'avance.

<-- St@iLeR -->

1 réponse

cs_Doom Messages postés 8 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 14 août 2003
14 août 2003 à 15:52
Voici trois petites fonctions qui répondront à ta question et une quatrième qui pourra t'être utile également.

La valeur de Entry dans les fonctions est la valeur d'une ligne afficher par le serveur. Voici un exemple si tu affiches dans une listbox.
Exemple : Entry := lstFiles.Items[1];

function IsDir(const Entry: string): boolean;
begin
if FTPServerType = ftpWindows then Result := IsFatDir(Entry) else Result :(Length(Trim(Entry)) > 0) and (LowerCase(Trim(Entry))[1] 'd');
end;

function IsFile(const Entry: string): boolean;
begin
if FTPServerType = ftpWindows then Result := not isFatDir(Entry) else Result :(Length(Trim(Entry)) > 0) and (Trim(Entry)[1] '-');
end;

function IsFatDir(const FatEntry: string): boolean;
var
s: string;
begin
s := Trim(FatEntry);
s := Trim(Copy(s, Pos(' ', s) + 1, Length(s)));
s := Trim(Copy(s, Pos(' ', s) + 1, Length(s)));
s := Trim(Copy(s, 1, Pos(' ', s) - 1)); Result :UpperCase(s) '<DIR>';
end;

function AccessAllowed(const Entry: string): boolean;
begin
if FTPServerType = ftpWindows then Result := true else Result :(Length(Trim(Entry)) > 7) and (LowerCase(Trim(Entry))[8] 'r');
end;

Doom
0
Rejoignez-nous