Partager via


SPBackupRestoreInformation.ReverseFileMapping - Méthode

Obtient le nom du fichier de sauvegarde qui contient le fichier spécifié.

Espace de noms :  Microsoft.SharePoint.Administration.Backup
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Function ReverseFileMapping ( _
    name As String _
) As String
'Utilisation
Dim instance As SPBackupRestoreInformation
Dim name As String
Dim returnValue As String

returnValue = instance.ReverseFileMapping(name)
public string ReverseFileMapping(
    string name
)

Paramètres

  • name
    Type : System.String

    Le nom d'un fichier source qui est contenu dans un fichier sauvegardé.

Valeur renvoyée

Type : System.String
String qui représente le nom du fichier de sauvegarde contenant la sauvegarde copie de name.

Remarques

Cette méthode est utilisée pour rechercher le nom de fichier de sauvegarde unique qui a été affecté dans le fichier identifié par le paramètre name par la méthode GenerateFileMapping . Elle est généralement appelée dans les implémentations de OnRestore(). Voir l'exemple ci-dessous.

Le format de la valeur de retour est .bak hex, où hex est un nombre hexadécimal à huit chiffres ; par exemple, "00000001.bak" ou 0000000A.bak".

Le paramètre name est également une clé dans un magasin interne de paires clé-valeur et la chaîne renvoyée par GenerateFileMapping est la valeur de la clé. Cette paire valeur-clé a été créée par GenerateFileMapping et stockée dans le fichier spbackup.xml dans le dossier Location .

Notes

Bien que GenerateFileMapping et ReverseFileMapping renvoient exactement la même valeur en réponse à la même entrée, ils font des choses différentes. GenerateFileMapping crée le nom de fichier unique et écrit la mappées paire de noms de fichiers dans le fichier spbackup.xml . ReverseFileMapping lit le mappage dans le fichier.

Exemples

L'exemple suivant montre la méthode ReverseFileMapping utilisée dans une implémentation de OnRestore(). Pour obtenir l'exemple complet, consultez How to: Create a Content Class That Can Be Backed Up and Restored.

public Boolean OnRestore(Object sender, SPRestoreInformation args)
{
    if (args == null)
    {
        throw new ArgumentNullException("args");
    }

    // If the CriticalFiles object was deleted from the farm after it was
    // backed up, restore it to the configuration database.
    CriticalFiles cf = SPFarm.Local.GetChild<CriticalFiles>(this.Name);
    if (cf == null)
    {
        this.Update();
        args.Log(SPBackupRestoreLogSeverity.Verbose, this.Name + " added back to configuration database.");
    }

    Boolean successSignal = true;

    // TODO: The following loop restores files to the local server. If there are 
    //       multiple front end servers, your code must iterate through all of 
    //       SPFarm.Local.Servers and restore the same files to every server whose
    //       Role property is SPServerRole.WebFrontEnd

    foreach (String path in FrontEndFilePaths)
    {
        FileInfo backupCopy = new FileInfo(path);
        String mappedFileName = args.ReverseFileMapping(backupCopy.Name);
        FileInfo file = new FileInfo(args.Location + @"\" + mappedFileName);

        try
        {
            file.CopyTo(path, true);
            args.Log(SPBackupRestoreLogSeverity.Verbose, "Restored " + backupCopy.Name);
        }
        catch (Exception e)
        {
            args.Log(SPBackupRestoreLogSeverity.Verbose, file.Name + " not restored: " + e.Message);
            successSignal = false;
        }
    }

    args.CurrentProgress = 50;
    return successSignal;
}
Public Function OnRestore(ByVal sender As Object, ByVal args As SPRestoreInformation) As Boolean
    If args Is Nothing Then
        Throw New ArgumentNullException("args")
    End If

    ' If the CriticalFiles object was deleted from the farm after it was
    ' backed up, restore it to the configuration database.
    Dim cf As CriticalFiles = SPFarm.Local.GetChild(Of CriticalFiles)(Me.Name)
    If cf Is Nothing Then
        Me.Update()
        args.Log(SPBackupRestoreLogSeverity.Verbose, Me.Name & " added back to configuration database.")
    End If

    Dim successSignal As Boolean = True

    ' TODO: The following loop restores files to the local server. If there are 
    '       multiple front end servers, your code must iterate through all of 
    '       SPFarm.Local.Servers and restore the same files to every server whose
    '       Role property is SPServerRole.WebFrontEnd

    For Each path As String In FrontEndFilePaths
        Dim backupCopy As New FileInfo(path)
        Dim mappedFileName As String = args.ReverseFileMapping(backupCopy.Name)
        Dim file As New FileInfo(args.Location & "\" & mappedFileName)

        Try
            file.CopyTo(path, True)
            args.Log(SPBackupRestoreLogSeverity.Verbose, "Restored " & backupCopy.Name)
        Catch e As Exception
            args.Log(SPBackupRestoreLogSeverity.Verbose, file.Name & " not restored: " & e.Message)
            successSignal = False
        End Try
    Next path

    args.CurrentProgress = 50
    Return successSignal
End Function

Voir aussi

Référence

SPBackupRestoreInformation classe

SPBackupRestoreInformation - Membres

Microsoft.SharePoint.Administration.Backup - Espace de noms

GenerateFileMapping