Navigation rapide

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é.

SauvegardeZ

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

SauvegardeZ - paramétrage

- 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 :

SauvegardeZ 1.1.1 (win64)
Version 64 bits
SauvegardeZ 1.1.1 (win32)
Version 32 bits

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

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.