Поделиться через


Метод SPBackupRestoreInformation.ReverseFileMapping

Возвращает имя файла резервной копии, содержащий указанный файл.

Пространство имен:  Microsoft.SharePoint.Administration.Backup
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Function ReverseFileMapping ( _
    name As String _
) As String
'Применение
Dim instance As SPBackupRestoreInformation
Dim name As String
Dim returnValue As String

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

Параметры

  • name
    Тип: System.String

    Имя файла, который содержится в файл из резервной копии.

Возвращаемое значение

Тип: System.String
String , представляющий имя файла резервной копии, содержащий резервной копии name.

Замечания

Этот метод используется для поиска имени уникальных файла резервной копии, который был назначен файл, указанный в параметре name с помощью метода GenerateFileMapping . Как правило вызывается в реализации OnRestore(). В приведенном ниже примере.

Имеет формат возвращаемое значение hex.bak, где hex — восьми шестнадцатеричных цифр; Например "00000001.bak" или 0000000A.bak".

Параметр name также ключ в хранилище внутренних пары "ключ значение" и строки, возвращаемой методом GenerateFileMapping — это значение ключа. В этом пары "ключ значение" был создан с GenerateFileMapping и сохраняются в файл spbackup.xml в папке Location .

Примечание

Хотя GenerateFileMapping и ReverseFileMapping возвращают точности совпадает со значением в ответ на одном входные данные, реализуют Разное. GenerateFileMapping создает уникальное имя файла и записывает сопоставленный пары имен файлов в файл spbackup.xml . ReverseFileMapping считывает сопоставление в этот файл.

Примеры

В следующем примере показано ReverseFileMapping метод, используемый в реализации OnRestore(). Полный пример в разделе 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

См. также

Справочные материалы

SPBackupRestoreInformation класс

Элементы SPBackupRestoreInformation

Пространство имен Microsoft.SharePoint.Administration.Backup

GenerateFileMapping