begin process at 2010 02 10 06:03:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Récursive *.bak


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récursive *.bak

dimanche 8 octobre 2006 à 17:06:41 | Récursive *.bak

bibi262

Bonjour,

Je cherchais depuis un bout comment faire pour supprimer les fichiers qui sont dans les sous-dossiers, j'ai finit par trouver un code qui marche superbement bien :

procedure Scan( NomDossier : string );
var
 hFound : Integer;
 sFileData : TSearchRec;
begin
 NomDossier := IncludeTrailingPathDelimiter( NomDossier );
 hFound := FindFirst( NomDossier + '*.*', faAnyFile, sFileData);
 if ( hFound = 0 ) then
 begin
  repeat
  if ( ( sFileData.Name <> '.' ) and ( sFileData.Name <> '..' ) ) then
  begin
   if ( ( sFileData.Attr and faDirectory ) <> faDirectory ) then
    begin
     ShowMessage('File name = '+sFileData.Name);
     ShowMessage('File size = '+IntToStr(sFileData.Size));
    end
   else
   Scan( NomDossier + sFileData.Name);
  end;
 until ( FindNext( sFileData ) <> 0 );
end;
SysUtils.FindClose( sFileData );
end;

J'en avais besoin car je devais supprimer tout les fichiers *.bak présent dans le disque dur. Alors je modifie :
hFound := FindFirst( NomDossier + '*.*', faAnyFile, sFileData);
pour
hFound := FindFirst( NomDossier + '*.bak', faAnyFile, sFileData);

Mais ça ne marche pas, si je remplace par *.bak, la fonction sous-dossier ne fonctionnera plus. Je ne comprends pas pourquoi et j'esasie de comprendre mais sans résultat.

Quelqu'un aurait une idée ?

Merci d'avance,
bibi262
dimanche 8 octobre 2006 à 20:46:31 | Re : Récursive *.bak

Emandhal

Réponse acceptée !
u,

C'est parce que tu n'a pas de répertoire avec une extension.bak.
Il te faut analyser tous les fichiers et dossiers avec *.*, et dans "if ( ( sFileData.Attr and faDirectory ) <> faDirectory ) then" il te faut vérifier l'extension et si c'est .bak, suppr le fichier.

Tout problème a sa solution... Mais en général, celle que l'on trouve n'est jamais la bonne...

dimanche 8 octobre 2006 à 22:22:34 | Re : Récursive *.bak

bibi262


Merci beaucoup :D

vendredi 13 octobre 2006 à 11:17:03 | Re : Récursive *.bak

elguevel

Hé mais c'est mon code çà ! :-) Content en tout cas que ma source serve à quelque chose !

Sinon oui le masque marche pour tout les types de fichier (donc dossier), il faut donc bien ajouter une condition sur le nom de fichier dans la boucle !

Bon Code !

 /\_/\
( o.o ) ~ ElGuevel ~
 > ^ <


Cette discussion est classée dans : name, nomdossier, sfiledata, bak, hfound


Répondre à ce message

Sujets en rapport avec ce message

erreur : duplicatat database name [ par samsih ] salut à tous j'ai crée une base de donnée sous oracle et j'ai fait une connection via delphi avec BDE toous va bien jusque là le contenu de la premier difficile... [ par gibono ] bonjour à tous.... j'ai une question un peu "tricky" ça va est dur de s'exprimer mais je me lance.j'aimerai faire (à tout prix..) comme en html avec u erreur : "invalid table name" [ par mounir81 ] Salut j'essaye d'acceder a une base dbase avec des fichiers .dbfj'ai utiliser le composant TDatabase je lui ai assigné un alias que j'ai crée en ODBC, pb dans mon code au niveau de la création de composants en dynamique. POuvez-vous jeter un coup d'oeil? [ par Bestdoud ] Pouvez vous me dire ce qui cloche la dedans. si je met maform.WindowState := wsmaximized; ca me met une erreur comme quoi le composants existe déja.lo pb dans mon code au niveau de la création de composants en dynamique. POuvez-vous jeter un coup d'oeil? [ par Bestdoud ] Pouvez vous me dire ce qui cloche la dedans. si je met maform.WindowState := wsmaximized; ca me met une erreur comme quoi le composants existe déja.lo AnsiIndexStr sans etre case sensitive [ par furax13 ] bonjour,j'utilise la méthode AnsiIndexStr  pour créer des objets typés comme l'indique l'exemple ci-desous :CONSTRUCTOR TCMContrainte.creation(noContr Problème de récursivité? [ par basile9 ] Bonjour J'ai adapté une procédure récursive, qui marchait très bien en TP7, pour Delphi 6, dans un programme console. Voiçi cette procedure, à base ExtractFileName, Fileext mais pas Name uniquement [ par edge76000 ] Bonjour,Si j'ai bien lu l'aide de Delphi, soit C:\monfichier.exesi j'appelle la focntion extractfilename j'obtiens monfichier.exesi j'appelle la fonct Plusieurs couleurs dans un TRichedit [ par OcHre ] Bonjour, j'ai un probleme pour mettre plusieurs couleurs differentes sur une meme ligne dans un Richedit. Cela marche pour la premiere ligne mais ensu exe par .bak [ par hackeur13 ] Bonsoir a tous et a toute,J'aurais une petite question concernant la sauvegarde d'un executable en ***.bak ???mais malheuresement je n'ais pas reussi.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,697 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales