SPEEDLINKS : Mini-Archivage de fichiers.

Télécharger cet exemple (le fichier est à dézipper dans le dossier de SpeedLinks dans "C:\Program Files\SpeedLinks\")

Objectif :
Créer une procédure qui automatise l'archivage de fichiers ou dossiers dans un dossier défini par l'utilisateur.

- L'archivage est effectué avec un dossier par jour, on utilisera ensuite l'outil de recherche de Windows ou le service d'indexation de Windows XP.
- Le chemin sélectionné par l'utilisateur est stocké, dans le dossier de SpeedLinks, dans un fichier au format XML.

Ceci n'est qu'un exemple. Vous pouvez le modifier et surtout l'améliorer : vous pouvez, par exemple, créer une option qui ouvre automatiquement la fenêtre "Rechercher" de Windows sur le dossier d'archivage (fonction BullBasic SHELL_FIND) ou encore Zipper le dossier lors de l'archivage (Plugin SPEEDZIP).

Démonstration :
Première étape, définition du dossier d'archivage :

Choix du dossier par l'utilisateur :

Seconde étape, l'archivage au quotidien :

Dernière étape, le résultat :
Le fichier XML généré avec le choix de l'utilisateur :



Résultat de l'archivage, avec le détail du dossier d'archive :

Le code :
Définition du dossier :

' dossier et nom du fichier XML
Xml_Filename(Application_Path & "Archivage.xml")
' activation de l'XML
Xmlfile.Active=True
' chargement du fichier
Xmlfile.Load()
' récupération de l'ancienne valeur
Dossier_Defaut=Xmlfile.ReadString("\Archivage\Chemin","")
' demande de sélection à l'utilisateur
Dossier_Archivage=Folder_Query("Dossier des archives","Sélectionnez le dossier de votre choix :",Dossier_Defaut)
' si l'utilisateur n'a pas fait annuler
If Dossier_Archivage<>"" then
    ' mémorisation du nouveau chemin dans le fichier XML
    Xmlfile.WriteString("\Archivage\Chemin",Dossier_Archivage)
end if
' fermeture du fichier XML
Xmlfile.Close()

Archivage : 

' teste si un dossier ou un fichier au moins sélectionné
If Context_SelCount>0 then' récupération du chemin d'archivage
    ' dossier et nom du fichier XML
    Xml_Filename(Application_Path & "Archivage.xml")
    ' activation de l'XML
    Xmlfile.Active=True
    ' chargement du fichier
    Xmlfile.Load()
    ' récupération de l'ancienne valeur
    Dossier_Archivage=Xmlfile.ReadString("\Archivage\Chemin","")
    ' fermeture du fichier XML
    Xmlfile.Close()
    ' teste si dossier archivage déjà configuré
    If Dossier_Archivage<>"" then
        ' balayage des objets sélectionnés
        For i = 0 to Context_SelCount - 1
            '' objet selectionné
            Selection=Context_Selected(i)
            ' teste si c'est un dossier
            If Folder_Is(Selection) then
                ' dossier de destination
                Destination=Dossier_Archivage & "\" & String_Now("yyyymmdd") & "\" 
                ' déplace les dossiers
                Folders_Move(Selection,Destination)
            Else
                ' dossier de destination
                Destination=Dossier_Archivage & "\" & String_Now("yyyymmdd") & "\"
                ' déplace les fichiers
                Files_Move(Selection,Destination)
            End if
        Next
    Else
        ' le dossier d'archivage n'est pas défini
        Message_Show("Le dossier d'archivage n'a pas été défini")
    End if
Else
    ' aucun objet sélectionné
    Message_Show("il faut sélectionner un dossier, un fichier ...")
End if

Didier  Urban
07/09/2003