Compartir a través de


del método SPBackupRestoreInformation.ReverseFileMapping

Obtiene el nombre del archivo de copia de seguridad que contiene el archivo especificado.

Espacio de nombres:  Microsoft.SharePoint.Administration.Backup
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public Function ReverseFileMapping ( _
    name As String _
) As String
'Uso
Dim instance As SPBackupRestoreInformation
Dim name As String
Dim returnValue As String

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

Parámetros

  • name
    Tipo: System.String

    El nombre de un archivo de origen que se encuentra en un archivo de copia de seguridad.

Valor devuelto

Tipo: System.String
String que representa el nombre del archivo de copia de seguridad que contiene la copia de seguridad copia de seguridad de name.

Comentarios

Este método se usa para buscar el nombre de archivo único de copia de seguridad que se asignó al archivo identificado mediante el parámetro name en el método GenerateFileMapping . Normalmente se llama en las implementaciones de OnRestore(). Consulte el ejemplo siguiente.

El formato del valor devuelto es hex.bak, donde hex es un número hexadecimal de ocho dígitos; Por ejemplo, "00000001.bak" o 0000000A.bak".

El parámetro name es también una clave en un almacén interno de pares clave-valor y la cadena devuelta por GenerateFileMapping es el valor de la clave. Este par de clave y valor se ha creado por GenerateFileMapping y se almacenan en el archivo spbackup.xml en la carpeta Location .

Nota

Si bien GenerateFileMapping y ReverseFileMapping devuelven exactamente el mismo valor en respuesta a la misma entrada, que hacen cosas diferentes. GenerateFileMapping crea el nombre de archivo único y escribe el par de nombres de archivo asignado en el archivo spbackup.xml . ReverseFileMapping lee la asignación en ese archivo.

Ejemplos

En el ejemplo siguiente se muestra el método ReverseFileMapping que se usa en una implementación de OnRestore(). Para obtener el ejemplo completo, vea 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

Vea también

Referencia

clase SPBackupRestoreInformation

Miembros SPBackupRestoreInformation

Espacio de nombres Microsoft.SharePoint.Administration.Backup

GenerateFileMapping