Accueil > Informatique > Langages et programmation > Le langage C > Mes programmes en C : SauvegardeZ
Mes programmes en C : SauvegardeZ
mercredi 16 décembre 2015
Introduction
Comme tout informaticien qui se respecte, ou qui essaye en tout cas, j’ai toujours été très sensible à la sauvegarde des données. Il faut bien être conscient qu’un ordinateur n’est pas infaillible : un disque dur défectueux, un fichier système endommagé, un virus, et c’est la perte irrémédiable de données qui peuvent avoir demandé des heures, des jours, voire des mois de travail acharné. Je me tue à faire prendre conscience à mon entourage qu’il faut impérativement sauvegarder ses données. La règle est pourtant simple : à tout instant, il faut que tout fichier personnel (document texte, image, fichier musical, etc...) se trouve sur deux supports physiques différents, au minimum. Si l’un vient à être défectueux, il nous reste l’autre... Outre le support principal sur lequel on travaille, qui est la plupart du temps le disque dur de l’ordinateur, le support de sauvegarde peut être soit un autre disque dur, interne ou externe, un disque dur sur un autre ordinateur (fonctionnement en réseau), un CD ou DVD gravé, une clé USB, etc... Dans un soucis de sécurité, il faut savoir que les CD ou DVD gravés n’ont pas une durée de vie éternelle. De même, les clés USB ou cartes mémoire non plus. Il vaut mieux être prudent si on tient vraiment à ses données. Pour ma part, je grave mes données, mais j’en fait également une copie sur disque dur externe (la ceinture et les bretelles !!!). Mais la base de tout, c’est de sauvegarder ses données régulièrement, c’est le B. A. BA...
Présentation du programme "SauvegardeZ"
Afin de me familiariser avec la programmation en C sous Windows avec l’IDE Dev-C++, j’ai cherché à développer un programme qui me soit utile, tant qu’à faire. J’avais besoin d’un petit programme pour faire facilement des sauvegardes de mes données et je me suis lancé.
Présentation de la Version 1.00 :
Ce logiciel permet de gérer des sauvegardes de tous types de fichiers. Il peut s’intégrer à une application tierce comme module de sauvegarde. Grâce au paramétrage et aux fonctionnalités de personnalisation, il peut s’adapter à un grand nombre de situations.
La compression et la décompression des sauvegardes est réalisée par le logiciel libre "7zip" en mode ligne de commande (programme "7za.exe"). Les fichiers compressés se font au format ZIP standard. La version 4.15 beta de 7zip est la première à permettre de gérer le multivolume en ligne de commande (switch -v) pour donner la possibilité de faire des sauvegardes sur disquette. C’est la version 4.31 de 7zip qui est utilisée par la version 1.00 de "SauvegardeZ".
La copie sur périphérique de sauvegarde est gérée par "SauvegardeZ", dans tous les modes.
Les principales fonctionnalités sont :
Sauvegarde simple sur périphérique de grande capacité (lecteur réseau, lecteur de carte mémoire, clé USB, ...) en écrasement (la nouvelle sauvegarde écrase l’ancienne).
Possibilité de gérer un nombre déterminé de jeux de sauvegardes (écrasement de la sauvegarde la plus ancienne)
Sauvegarde sur disquette avec gestion multivolume
Gestion de la liste des fichiers à sauvegarder par fichier texte "SauvegardeZ_liste.txt". Il suffit d’éditer ce fichier pour y lister tous les fichiers que l’on souhaite sauvegarder (accessible depuis la fenêtre de paramétrage). Les caractères génériques sont acceptés, ainsi que les chemins. Exemples :
- "*.fic" pour sauvegarder tous les fichiers ayant une extension ".fic"
- "data/*.*" pour sauvegarder tous les fichiers du sous-répertoire "data" présent dans le répertoire courant
Lancement automatique de la sauvegarde si le paramètre "SauvegardeAuto" est passé à l’application "SauvegardeZ" : seuls sont conservés les messages d’information et d’interrogation ; le lancement de la sauvegarde à l’ouverture de l’application et la sortie du programme se font automatiquement.
Utilisation de l’option -r de la commande 7za.exe pour balayer les sous-répertoires (paramétrable).
Suppression du fichier temporaire créé dans le répertoire local (paramétrable).
Personnalisation de l’application :
— Fond d’écran : pour améliorer le "look" de l’application et l’adapter à l’application tierce, on peut remplacer le fichier "SauvegardeZ_fond.bmp" qui sert de fond d’écran pour "SauvegardeZ". La taille recommandée est 320 x 248.
— Nom de l’application qui apparaît en titre dans la première fenêtre de "SauvegardeZ" pour s’adapter à l’application tierce
— Nom du fichier de sauvegarde
Paramétrage :
— Type de sauvegarde (simple ou par jeux)
— Périphérique de sauvegarde (disquette ou périphérique de grande capacité)
— Sélection du lecteur et répertoire de sauvegarde sur périphérique de grande capacité
— Taille maxi de fichier sur disquette pour le multivolume
— Liste des fichiers à sauvegarder
— Balayage ou non des sous-répertoires
— Suppression ou non du fichier temporaire créé en local
Restauration en écrasement depuis une sauvegarde (à partir d’un périphérique de grande capacité, ou bien d’un jeu de disquettes)
Présentation des versions
Version 1.1.1 (07/01/2016) - Compilée en 64/32 bits avec TDM-GCC 5.1.0
Optimisations pour prise en compte de chemins longs
Image de fond en jpg
Version 1.1.0 (15/12/2015) - Compilée en 64/32 bits avec TDM-GCC 5.1.0
Utilisation de la fonction CopyFile au lieu de SHFileOperation pour les copies de fichiers
Actualisation et simplification du fichier "SauvegardeZ_Alire.txt" (fichier d’aide)
Version 1.08 (22/10/2012) :
Suppression de la sauvegarde sur disquette (et de la restauration)
Suppression des boutons "Fermer" et "Paramètres" sur l’écran principal
Modification des couleurs et de l’image de fond
Version 1.07 (05/10/2009) :
Correction de bug mineur : dans la fenêtre de paramétrage, pour la sélection de répertoire, l’initialisation sur le répertoire actuel ne fonctionnait pas.
Version 1.06 (13/06/2008) :
Ajout du site web dans la fenêtre "A propos"
Ajout des fichiers texte de licence d’utilisation pour les logiciels "7zip" et "SauvegardeZ"
Version 1.05 (05/05/2008) :
Nouvelle version développée avec CodeBlocks
Inclusion des informations de support des thèmes Windows XP + des informations de version dans le fichier ressource SauvegardeZ.rc
Utilisation de la version 4.42 de 7Zip
Version 1.04 (03/12/2007) :
Changement du nom de l’application Sauveg@rdeZ en SauvegardeZ (pour éviter les caractères spéciaux)
Version 1.03 (06/08/2007) :
Reprise du focus après le message de fin de sauvegarde
Version 1.02 (12/10/2006) :
Re-compilation pour les supports des thèmes Windows XP (à cause de la mise à jour Windows Update d’octobre 2006 FrameWork .NET 2.0 ????).
— #include <commctrl.h>
a été ajouté (+ ajout du -lcomctl32 pour l’édition des liens)
— InitCommonControls() ; a été ajouté avant de créer la fenêtre principale pour charger la DLL comctrl32.dll
Suppression du #include <wingdi.h>
(inutile) + suppression du -lgdi32 pour l’édition des liens
Ajout de la touche F1 pour afficher le fichier d’aide
Version 1.01 (25/04/2006) :
Lancement automatique silencieux si le paramètre est "SauvegardeSilencieuse" (pas de message de fin)
Notions et syntaxes du langage C mises en oeuvre dans ce programme
Génération d’une fenêtre standard (sans possibilité d’agrandissement)
Association d’une icône spécifique pour l’application à partir d’un fichier ressource
Application d’une couleur spécifique en fond de fenêtre
Récupération et initialisation du répertoire en cours
Centrage de la fenêtre dans l’écran
Usage de boutons et gestion des actions sur ceux-ci
Usage de zones libellés
Création de fontes pour usage sur les libellés et les boutons
Usage de zones image avec chargement à partir d’un fichier ressource (image icône de l’application SauvegardeZ)
Usage de zones image avec chargement à partir d’un fichier externe (image de fond de fenêtre)
Récupération des paramètres passés en ligne de commande au programme (ici pour lancement automatique de la sauvegarde à l’ouverture de l’application)
Lecture et écriture de paramètres dans un fichier INI
Exécution d’application externe (y compris avec paramètre)
Attente de fin d’un processus externe (dans ce programme la fin de la sauvegarde)
Gestion des actions sur les touches ESC et Entrée
Conversion de chaîne en nombre
Conversion de nombre en chaîne
Concaténation de chaînes de caractères
Balayage de répertoire (liste des fichiers selon un masque. Ex. : "*.zip" pour tous les fichiers ZIP)
Affichage de message dans une fenêtre (information ou erreur)
Copie de fichier "à la mode" Windows (avec jauge de progression quand le fichier est volumineux)
Suppression de fichier
Récupération et conversion de date et heure courantes
Boucle FOR
Boucle DO...WHILE
Génération d’une boîte de dialogue avec fichier ressource (dans ce programme la fenêtre de paramétrage) :
- Zone Libellé
- Zone de saisie texte
- Bouton sélecteur (pour choix multiple)
- Bouton case à cocher
- Bouton standard
- Bouton de validation (touche Entrée)
- Zone groupe (encadrement d’une zone à l’écran pour regrouper d’autres zones)
Couleur de fond d’écran ou de zone dans une boîte de dialogue (+ couleur de texte)
Sélection de répertoire dans une boîte de dialogue standard Windows
Sélection de fichier dans une boîte de dialogue standard Windows
Gestion de menu (par fichier de ressource)
Gestion de tableaux (tableau des fichiers de jeux)
Tri à bulle (tableau des fichiers de jeux)
Fenêtre "A propos"
Récupération de l’espace libre sur un lecteur
Récupération de la taille d’un fichier
Téléchargement
Bon, ce modeste programme utilitaire, j’ai décidé d’en faire don à la communauté, sans restrictions, en tant que gratuiciel (logiciel gratuit). Si vous y trouvez un intérêt, j’en serai très heureux. Personnellement, je l’utilise quotidiennement, tant à la maison qu’au bureau. Par exemple, au bureau, j’ai créé une tâche Windows qui lance une sauvegarde tous les jours, le midi, pendant que je suis parti déjeuner : très pratique.
Je m’en sers également comme module de sauvegarde pour d’autres applications. Par exemple, chaque fois qu’on quitte une application qui l’utilise, la sauvegarde se lance automatiquement et silencieusement : plus de risques de pertes de données, la sauvegarde reprend les dernières données à jour de l’application.
Voici les fichiers zip de l’application :
Volontairement, je n’ai pas créé de programme d’installation. Il suffit de dézipper le fichier et de recopier le contenu à l’emplacement de son choix. On peut ainsi l’installer à plusieurs endroits, avec des paramétrages différents pour des sauvegardes différentes. Généralement, je le place soit directement dans le répertoire des données à sauvegarder, soit dans le répertoire parent. Il ne reste plus qu’à créer un ou des raccourcis, à placer sur le bureau, et le tour est joué.
ET PUIS N’OUBLIEZ PAS !!! SAUVEGARDEZ !!!
Messages
1. Programme de sauvegarde Zip, 26 février 2010, 10:29, par ALAIN
Bonjour,
Votre programme est-il compatible avec Windows 7 64 BITS.
Merci d’avance pour votre éponse.
Cordialement,
Alain CARRISSIMOUX
1. Programme de sauvegarde Zip, 26 février 2010, 10:44, par Jean-Yves Giraud
Oui, bien sûr, je l’utilise tous les jours dans cet environnement (Windows 7 - 64 bits). SauvegardeZ est un programme en 32 bits, mais il fonctionne sans problèmes sur un système 64 bits.
2. Mes programmes en C : SauvegardeZ, 2 novembre 2011, 11:57, par L’intendant zonard
J’en rêvais depuis des années, merci ! J’assure la promotion de ce logiciel auprès de ma profession sur la page : http://60gp.ovh.net/~intendan/spip.php?article543
Il ne manque qu’un peu d’explications pour l’utilisateur peu averti ayant du mal à créer sa liste de fichiers à sauvegarder, et c’est nickel. Et peut-être aussi une validation de son bon fonctionnement sous Win Vista et 7 (je ne peux pas en témoigner moi-même, la plupart des établissements scolaires sont restés 100 % XP)
1. Mes programmes en C : SauvegardeZ, 2 novembre 2011, 14:44, par Jean-Yves Giraud
Merci pour les compliments et la promo. Cela m’encourage à préparer une nouvelle version, peut-être avec un look un peu plus moderne et des explications plus fournies... Ceci dit, la version 1.07, qui est en 32 bits, fonctionne sur tous les systèmes Windows pour lesquels j’ai pu la tester : 98, XP, Vista, et Windows 7 (même sur un système 64 bits).