Problème de sous répertoires

aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010 - 7 févr. 2007 à 17:14
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010 - 11 févr. 2007 à 14:55
Bonjour à tous,

Je travail en ce moment sur la réalisation d'un prog permettant le transfert automatique, via le protocol ftp, d'une arborescence de répertoire. Je me suis inspiré d'un code que j'ai trouvé sur le net, et j'ai essayé de le modifier. Mon prog fonctionne, le seul problème est qu'il ne copie pas les sous-répertoires...Je cherche désepérément depuis deux jours et je pense ne pas être loin de la solution, ou peut-être en fait...:p
Pouvez-vous m'aidez s'il vous plait ? Je fai ce prog dans le cadre de mon bts en alternance, afin de préparer mon logiciel comme projet l'année prochaine.
Voici le code que j'utilise :

Procedure ScruteFichier(Dossier:string;filtre:string;Attributs:integer; eff:boolean);
var FichierTrouve:string;
    Resultat:Integer;
    SearchRec:TSearchRec;

begin
  If Dossier[length(Dossier)]='\' then Dossier:=copy(Dossier,1,length(Dossier)-1);
  Resultat:=FindFirst(Dossier+'\'+filtre,Attributs,SearchRec);
  while Resultat=0 do
  begin
    Application.ProcessMessages;
    if ((SearchRec.Attr and faDirectory)<=0)
     then
    begin
      FichierTrouve:=Dossier+'\'+SearchRec.Name;
      UpLoadFile ( FichierTrouve, ExtractFileName(FichierTrouve) );

    end;
    Resultat:=FindNext(SearchRec);
  end;
  FindClose(SearchRec);
end;

Procedure ScruteDossier(Dossier:string;filtre:string;attributs:integer;recursif:boolean);
var DossierTrouve:string;
    Resultat:Integer;
    SearchRec:TSearchRec;
    chemin:string;
begin

  begin
    Resultat:=FindFirst(Dossier+'\'+'*.*',FaDirectory,SearchRec);
    while Resultat=0 do
    begin
      if (SearchRec.Name<>'.') and (SearchRec.Name<>'..')
         and ((SearchRec.Attr and faDirectory)>0)then
      begin
        ScruteFichier(Dossier,filtre,attributs,true);
        DossierTrouve:=Dossier+'\'+SearchRec.Name;
        FtpCreateDirectory( PConnexionFTP, PChar( SearchRec.Name ) );
        EntrerDansRepertoire(SearchRec.Name);
        ScruteFichier(Dossier+'\'+SearchRec.Name,filtre,attributs,true);
        Entrerdansrepertoire('..');
       if recursif then
        Application.ProcessMessages;
      end;
      Resultat:=FindNext(SearchRec);
      ExtractBeforeFolder( Dossier );
    end;
  end;
  FindClose(SearchRec);
 end;

Pour appeler la procédure :
ScruteDossier('d:\save\'+username,'*.*',attributs,false);

Merci d'avance à tous
Cordialement

Paul

1 réponse

aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010
11 févr. 2007 à 14:55
JulioDelphi, je te remerci. Cela dit j'aurais bien voulu savoir ce qui ne va pas dans mon code, car j'ai essayé de le comparer avec celui que tu m'a donné mais il est un peu complexe, et ya po de commentaires...je pense que pour tous les programmeurs ki touchent un peu ca doit être un code simple(enfin je pense) mais je galère un peu...pourrais-tu me donner un ptit coup de pouce stp ?
0
Rejoignez-nous