Метод 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