La classe NsBackupSource représente un élément source sauvegardé par le serveur de sauvegarde. Une sauvegarde est constitué d'un ensemble d'éléments source traités séquentiellement, qui peuvent être des fichiers ou des dossiers de fichiers.
L'identificateur unique de l'élément source. Les constantes suivantes peuvent-être utilisées :
La date de création de l'élément source sur le serveur, au format UTC.
L'identificateur de la sauvegarde (NsBackup) parente.
Un entier représentant le numéro d'ordre de la source dans la liste des sources constituant la sauvegarde. Lors de l'exécution d'une sauvegarde, les sources sont traitées dans l'ordre croissant de leur numéro d'ordre. Si plusieurs sources de sauvegarde possèdent plusieurs numéro d'ordre identiques, l'ordre final de traitement n'est pas défini.
L'identificateur de la plateforme dont sont issus les fichiers contenus par la source, tel qu'il a été paramétré par la sauvegarde parente.
Le chemin d'accès de l'élément source sur le poste client.
Une variable booléenne indiquant si les sous-dossiers doivent-être traités.
Le type de l'élément source (fichier ou dossier).
L'encodage des dates, dépendant du système de fichiers utilisé. Lorsque l'encodage UTC est utilisé (ce qui est le cas pour le système de fichiers NTFS), les dates des fichiers devront être converties au format UTC lors de leur affichage. Vous pouvez utiliser la fonction GetLocalFileDate pour cela.
Les options supplémentaires da la source de sauvegarde. Les valeurs suivantes peuvent être combinées :
Réservé.
Le nom d'utilisateur à utiliser si la ressource est un volume réseau monté par le logiciel.
Le mot de passe à utiliser la ressource est un volume réseau monté par le logiciel.
Une variable booléenne indiquant si l'élément source a pu être trouvé lors de la dernière sauvegarde. Si ce n'est pas le cas, la sauvegarde ne s'exécutera pas correctement et vous devrez impérativement supprimer ou faire pointer l'élément source vers son nouveau nom, s'il a été déplacé ou renommé.
Une variable booléenne indiquant si une sauvegarde complète est nécessaire pour cet élément, lorsque la sauvegarde continue est activée pour la tâche parente. Si cette variable vaut true, la sauvegarde continue ne sera pas activée jusqu'à la prochaine exécution complète de la sauvegarde.
Charge en mémoire la source de sauvegarde BackupSourceID.
Met à jour la source de sauvegarde représentée par l'objet.
Supprime la source de sauvegarde représentée par l'objet.
Initialise l'objet pour création à partir d'un fichier existant pointé par PathName.
Initialise l'objet pour création, à partir d'un dossier existant pointé par PathName. Si RecurseDir vaut true, les sous-dossiers sont aussi traités.
Charge en mémoire le contenu de l'élément sauvegardé, tel qu'il apparaît sur le serveur de sauvegarde.
Charge en mémoire le contenu de l'élément sauvegardé, tel qu'il apparaît sur le serveur de sauvegarde à la date AtDate, au format UTC.
Similaire à LoadContent, avec une interface graphique affichant la progression du chargement. Cette fonction n'est pas threadsafe : elle ne doit être utilisée qui si c'est le thread principal de votre application qui l'appelle.
Similaire à LoadContentAtDate, avec une interface graphique affichant la progression du chargement. Cette fonction n'est pas threadsafe : elle ne doit être utilisée qui si c'est le thread principal de votre application qui l'appelle.
Convertit si besoin une date FileDate portée par un fichier contenu par l'élément en une date affichable dans le fuseau horaire courant. Un ajustement à lieu uniquement si DatesEncoding désigne un encodage UTC, sinon la date fournie est renvoyée sans modification.
Construit le chemin d'accès complet du fichier contenu dans la source, à partir du chemin relatif RelativePath fourni.
Retourne les pramètres d'initialisation dynamique de la source, si elle est distribuée depuis un modèle de sauvegarde.
Définis les pramètres d'initialisation dynamique de la source, si elle est distribuée depuis un modèle de sauvegarde.
Set connection = CreateObject("NsAPI.NsConnection") const nsSourceIsFolder = 1 const nsDateEncodingUnknow = 0 const THROOTOPT_INCLUDE_IN_SNAPSHOT_SET = 16 ' Renvoit l'ID d'une sauvegarde à partir de son nom Function FindBackupByName(backups, name) FindBackupByName = -1 for each backup in backups if StrComp(backup.Name, name, vbTextCompare) = 0 then FindBackupByName = backup.ID Exit Function end if next End Function if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") if server.Load(connection) then ' Demander un nom de sauvegarde backupName = InputBox("Saisissez le nom d'une sauvegarde sur le serveur (ex : Ma sauvegarde) : ", "Test de l'API UB", "") ' L'utilisateur a t-il saisi un nom de backup ? if backupName <> "" then backupID = FindBackupByName(server.AllBackups(connection), backupName) ' Est ce qu'on a bien trouvé une sauvegarde valide ? if sysutils.CompareInt64(backupID, -1) = 0 then MsgBox "Erreur : la sauvegarde """ & backupName & """ n'a pu être trouvée sur le serveur." else pathToAdd = "" ' OK, on a trouvé la sauvegarde. On demande un dossier à ajouter à la sauvegarde. set objShell = CreateObject("Shell.Application") set objFolder = objShell.BrowseForFolder(0, "Selectionnez un dossier à ajouter à la sauvegarde : ", 0, myStartFolder ) if IsObject(objfolder) Then pathToAdd = objFolder.Self.Path if pathToAdd <> "" then set backupSource = CreateObject("NsAPI.NsBackupSource") backupSource.ID = -1 ' Constante nécessaire pour la création backupSource.BackupID = backupID ' Lier au backup sélectionné backupSource.PathName = pathToAdd ' Le chemin à sauvegarder backupSource.RecurseDir = MsgBox("Souhaitez-vous sauvegarder aussi les sous-dossiers ?", vbQuestion + vbYesNo + vbApplicationModal, "Test de l'API UB") = vbYes backupSource.SourceType = nsSourceIsFolder ' Le type de l'élément à sauvegarder : un dossier backupSource.DatesEncoding = nsDateEncodingUnknow ' Encodage de la date inconnu, le logiciel la déterminera lors de l'exécution backupSource.Options = THROOTOPT_INCLUDE_IN_SNAPSHOT_SET ' Inclure la source dans le snapshot VSS if backupSource.Update(connection) then ' Créer MsgBox "Le dossier a été correctement ajouté à la liste des éléments à sauvegarder." else MsgBox "Erreur lors de l'ajout de l'élément à sauvegarder" end if end if end if end if else MsgBox "Impossible de charger les informations serveur." end if connection.Disconnect else MsgBox "Connexion au serveur local impossible." end if