begin process at 2013 05 24 11:25:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > SYNCHRONISATION DE FICHIERS

SYNCHRONISATION DE FICHIERS


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :fichier, synchronisation, répertoire Niveau :Débutant Date de création :13/03/2008 Date de mise à jour :03/05/2011 19:48:47 Vu / téléchargé :8 417 / 710

Auteur : tigris1

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bonjour,

Le programme de synchronisation de répertoires posté par akilavaca m'a donné des idées et j'en ai fait le programme présenté ici. Deux petites particularités à signaler: le programme, par configuration, peut tenir compte de la différence des dates des fichiers entre les systèmes FAT et NTFS (2 secondes) ou tester les dates en jouant sur les fuseaux horaires.

Comme vous pouvez le deviner sur la capture jointe, la synchronisation est bidirectionnelle. Il est possible de faire un certain nombre d'opérations comme la synchronisation bien sûr, la suppression de fichiers (dans la source et/ou la destination), la suppression des répertoires  vides. Une description détaillée est jointe dans un fichier au format pdf.

J'utilise ce programme pour mes fréquentes synchronisations (même après réorganisation des arborescences (d'où la présence de la suppression des répertoires vides)). Sur un des ordinateur que j'utilise, il y a le petit défaut suivant: au démarrage du thread à la demande  de recherche des fichiers, il y a invalidation des boutons de la barre d'outils. Il arrive qu'un ou deux boutons soient invalidés, pas les autres, et plus rien ne se passe. Il faut cliquer sur un bouton encore actif et cliquer à nouveau sur le bouton de recherche des fichiers pour le travail s'effectue. Si quelqu'un trouve le problème, je l'en remercie d'avance.

Tous les textes sont chargés depuis des fichiers textes avec l'extension .lng avec un format des fichiers .ini. Ceci provient du fait que certains de mes programmes sont multilingues et le fichier texte est plus facilement transmit à une personne tierce pour traduction. Il y a un fichier de texte pour les fichiers propre à l'application et un pour les librairies. Ce n'est pas la manière la plus concise pour gérer mais c'est celle que j'ai choisie.
Les fichiers suivants sont indépendants de l'application et peuvent donc être réutilisés: Colors, DatesFunc, Filesutils, FormAbout, FormSelectDir, Language_Lib, StringUtils.

Il y a encore beaucoup de fonctions qui peuvent être ajoutées et il n'est pas impossible que j'en fasse. Si quelqu'un améliore ce programme ou ajoute des fonctions, je serais ravi de les rassembler  avec mes ajouts éventuels pour en faire un  nouveau post.  

Depuis une année je ne programme plus que dans le train, lors de mes déplacements journaliers pour me rendre à mon travail. Cela implique une réactivité réduite de ma part sur le forum.  Merci de votre patience si vous m'interpelez après ce post.

Cordialement

Tigris


 Conclusion

Il y a encore beaucoup de fonctions qui peuvent être ajoutées et il n'est pas impossible que j'en fasse. Si quelqu'un améliore ce programme ou ajoute des fonctions, je serais ravi de les rassembler  avec mes ajouts éventuels pour en faire un  nouveau "post".  

Depuis une année je ne programme plus que dans le train, lors de mes déplacements journaliers pour me rendre à mon travail. Cela implique une réactivité réduite de ma part sur le forum.  Merci de votre patience si vous m'interpelez après ce "post".

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

24 mars 2008 12:33:18 :
Bonjour, Correction de la ligne 193 du fichier FormOptions.pas qui était "case TComboBox(Sender).ItemIndex of" et qui est devenue "case ComboBoxHistory.ItemIndex of". En effet la fonction OnHistoryActions n'est pas appelée que par le combobox et l'identification du combobox n'était pas assuré. Cordialement Tigris
31 mars 2008 20:21:38 :
Bonjour, Je garde les 2 champs pour le défilement des répertoires. Cela est utile pour moi qui synchronise des répertoires (et sous-répertoires) de plus de 70'000 fichiers. Je laisse la fenêtre "A propos..." comme l'a défini IA93 bien que je préfère, et garde chez moi, seulement le bord cuivré. Je ne suis pas convaincu par le positionnement des éléments de la fenêtre principale dans la fonction "AdjustOnResize" du fichier. "UserControl.pas" qui utilise les constantes 54, 60 et 64 pour le positionnment. Pour ma part je ne défini que l'espace fixe que je veux avoir entre certains éléments (2 et 16). Pour éviter d'ajouter la procédure "ReadIniLang" du fichier "IniFile.pas" il suffit d'inverser dans la procédure "FormCreate" du fichier "FormMain" les deux appels de fonctions et de les mettre dans l'ordre suivant: InitTexts; // Initialisation des textes en fonction du langage InitOptions; // Initialisation des options du fichier .ini Le combo box pour les filtres sur les noms de fichiers est légèrement agrandi. il est désormais impossible de quitter l'application si le scanning est en cours. Le fichier d'aide est mis à jour. Les textes pour les nouvelles options du menu contextuel dans le fichier Français.lng. Le problème de l'erreur qui survient parfois au 1er lancement du scanning est probablement lié à l'utilisation du Thread.En traçant dans le source, 'ai vu que l'erreur se produisait dans TUserCtrl.SetForCompare mais je suis incapable de trouver pourquoi. Il y a un autre défaut. Suivant la manière de faire scroller la liste des fichiers avec l'ascenceur, les cases à cocher ne se redessine pas correctement, mais il suffit de cliquer sur l'ascenceur ou dans la liste pour rafraîchir correctement la liste. Si quelqu'un peut me renseigner, je suis preneur. Cordialement Tigris
03 mai 2011 19:15:07 :
Une demande d'utilisation d'une partie du code m'a été faite. J'en profite donc pour déposer une version qui comporte tout de même un certain nombre d'ajouts et de modifications. J'utilise une unité "CRC.pas" (Copyright (c) 1999, UtilMind Solutions) que j'ai très légèrement modifié pour mon usage. Le fichier original "CRC-original.pas" est joint au zip. Je n'ai malheureusement pas mis à jour le fichier d'aide du programme.
03 mai 2011 19:28:18 :
Houps, j'ai supprimé les fichiers inutiles!!!
03 mai 2011 19:48:47 :
Houps...

 Sources du même auteur

Source avec Zip Source avec une capture GESTHEURES
Source avec Zip Source avec une capture SUDOKU : AÏE ENCORE UN !
Source avec Zip Source avec une capture PORTRAITS CARACTERISTIQUES SELON HOLLAND
Source avec Zip Source avec une capture CHECKGROUPBOX : GROUPBOX AVEC CHECKBOX, PUSHBUTON OU PANEL A...

 Sources de la même categorie

Source avec Zip Source avec une capture SPLIT PARTIES D'UN FICHIER ET PRODUCTION DE NOMS DE FICHIERS par Jean_Jean
Source avec Zip Source avec une capture CLEANER NETTOYEUR DE RÉPERTOIRE par PythonGreg
Source avec Zip Source avec une capture RECHERCHE PAR EXTENSION AVEC JVCL par Weirdy
Source avec Zip Source avec une capture FICHIER DUPLIQUÉ AVEC UNE TABLE DE HACHAGE par jerome1875
Source avec Zip Source avec une capture WII SD CARD NAVIGATOR 1.0.0.5 ALPHA par skyangel21

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture WINDOWS DESKTOP - UTILISER LA BASE DE DONNÉES DE WINDOWS POU... par MAURICIO
Source avec Zip Source avec une capture CLEANER NETTOYEUR DE RÉPERTOIRE par PythonGreg
Source avec Zip Source avec une capture RECHERCHE PAR EXTENSION AVEC JVCL par Weirdy
Source avec Zip Source avec une capture SIZECONVERTER : UNE MINI LIBRAIRIE DE CONVERSION DE TAILLE par LaDentDeLait
Source avec Zip SYNCHRONISATION-FICHIERS (MODIFICATION DE TIGRIS1) par IA93

Commentaires et avis

Commentaire de tigris1 le 13/03/2008 21:58:11

Un oubli:
Les illustrations du fichier d'aide (.pdf) sont celles de l'application qui utilise le composant VclSkin. Le programme original comporte un bouton supplémentaire pour choisir l'apparence en chargeant un fichier correspondant au choix. C'est le 2ème bouton de puis la droite sur la capture et qui ne se trouve pas dans le source déposé. Le composant est payant et c'est pourquoi il n'est pas joint au "post".

Cordialement
Tigris

Commentaire de atlandev le 20/03/2008 01:20:23 10/10

un seul mot BRAVO...
Programme + Fichier d'aide... et en plus le progr. fonctionne parfaitement.
Juste un p'tit truc, la suppression d'un lien dans la boîte de dialogue options->historiques ne semble pas bien fonctionner.
Bonne continuation.

Commentaire de tigris1 le 20/03/2008 15:40:02

Merci Atlandev,

J'ai effectivement vu le problème, mais après le "post". J'avais bien testé cela, mais je pense qu'une modification ultérieure, pas ou mal testée, est à l'origine de cette défaillance. Je vais y remédier et faire une mise à jour, après les fêtes.

Bonnes Fêtes de Pâques.

Tigris

Commentaire de phcalamita le 29/10/2008 16:06:59

salut,
quelques petites erreur notament si tu ne synchronise qu'une direction dest -> src


je me suis permit de modifier quelque peu le source
dans la methode SynchroFiles de l'unite FormSyncFiles

...
          bIgnored := FALSE;
          // Gestion de la synchronisation
          if CheckBoxSyncFromSource.Checked then
          begin
            if sFields[nCOL_CHECKED] = '1' Then
            begin
               if sFields[nCOL_SYNC] = '>' then
                 CopySrcToDest
               else
                 bIgnored := True;
             // else
             //if sFields[nCOL_SYNC] = '<' then
             //  CopyDestToSrc;
            end
            else
              bIgnored := True;
          end;

          if CheckBoxSyncFromTarget.Checked then
          begin
            if sFields[nCOL_CHECKED] = '1' Then
            begin
            // if sFields[nCOL_SYNC] = '>' then
            //   CopySrcToDest
           //  else
             if sFields[nCOL_SYNC] = '<' then
               CopyDestToSrc
              else
                bIgnored := True;

           end
            else
              bIgnored := True;
          end;

          // Gestion de la bonne exécution ou non de la copie
          if (not(bCopied))  and (not(bIgnored)) then
          begin
  ...


autre modif
dans la formprincipale

possibilite de saisir les filtre directement dans le combo

ajou de la methode onKeyup

procedure TFrmMain.ComboBoxFileTypesKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  id : Integer;
begin
if Key = VK_RETURN then
begin
   if ComboBoxFileTypes.Items.IndexOf(trim(ComboBoxFileTypes.Text))< 0 Then
   begin
     ComboBoxFileTypes.Items.Add(trim(ComboBoxFileTypes.Text));
     id := ComboBoxFileTypes.Items.IndexOf(trim(ComboBoxFileTypes.Text));
     ComboBoxFileTypes.ItemIndex := id;
     OnUserSelectActions(sender);
   end;
end;
end;

Cordialement
Philippe

Commentaire de tigris1 le 29/10/2008 19:20:02

Salut Philippe,

Cela fait très plaisir de voir que ce code intéresse quelques personnes et surtout que ces personnes creusent les choses et proposent des améliorations qui sont les bien-venues.

Merci donc pour tes améliorations.

Cordialement

Tigris

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème fichier INI [ par TiDaN326 ] Bonjour à tous :)Bon je me sert de la fonction pour créer/lire des fichiers INI... jusque là, tout va bien, mais comment je fait pour créer le fichier Abrevia - Zipper un fichier sans inclure son repertoire [ par delphiSteph ] Bonjours &#224; tous,<?xml:namespace prefix = o ns = "urn:schemas-mi comment détecter si un fichier est en cours de copie ? [ par coax81 ] bonjour ,j'aimerai faire une application de copie de fichiers , mais qui copie des fichier qui seront déplacé dans un répertoire , mais le problème , transfert de fichier/répertoire par le réseau [ par aforpien ] Bonjour à tous,Je travail actuellement sur un prog qui permetterai la sauvegarde automatique d'un poste ainsi que l'envoi des données vers un serveur. Quel identificateur dans clé de registre correspondant à un objet Fichier [ par octavianus_1 ] Bonjour à tous, Je veux pourvoir lancer une application de la manière suivante: 1° on sélectionne un fichier ou un répertoire 2° sur clic droit de la Aide pour fichier xml lire et ecrire dedans merci [ par nuagedan100 ] Bonsoir a tous, Je voudrais avoir un bout de code en delphi qui va lire dans un fichier xml et qui me laffiche dans un tedit lors de l'ouverture de l XML et SQL [ par ericdelph ] Bonjour à tout le monde et MERCI de votre attention, je fais un projet complet de gestion de vente dans un super marché, un truc comme gerer les vent impossible accéder au fichier ...utilisé par un autre processus [ par Gerard ] Bonjour, J'ai développé un serveur sur lequel les gens viennent jouer au bridge. De temps à autre, le serveur crache une erreur 'Le processus ne peut Généré un fichier txt [ par zer_you_19 ] Bonjour J&#8217;ai un fichier texte avec un format bien défini en nombre de caractères et d&#8217;espace dans chaque ligne, et j&#8217;ai besoin de g Registre.windows [ par cLapp ] bonjour, dans quelle section de cet immense traite-on de l'enregistrement de propriétés dans le registre de windows ? Non pas le fichier du compilateu


Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 7,036 sec (3)

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