FileRegion Class
.NET Framework 3.0
Represents a region of a file to be archived. This class cannot be inherited.
Namespace: System.IO.Log
Assembly: System.IO.Log (in system.io.log.dll)
Assembly: System.IO.Log (in system.io.log.dll)
A LogArchiveSnapshot object contains the information necessary to generate a consistent backup of the data in a LogStore. The actual data is contained in the enumerable collection of FileRegion objects returned by the ArchiveRegions property. Each FileRegion instance represents a sequence of bytes in a file that must be archived.
The following example demonstrates how to archive a log store to XML using the LogStore and FileRegion classes.
class LogBackup { static void ArchiveToXML(LogStore logStore, string fileName) { LogArchiveSnapshot snapshot = logStore.CreateLogArchiveSnapshot(); { XmlTextWriter writer = new XmlTextWriter(fileName, System.Text.Encoding.ASCII); writer.WriteStartElement("logArchive"); foreach (FileRegion region in snapshot.ArchiveRegions) { writer.WriteStartElement("fileRegion"); writer.WriteElementString("path", region.Path); writer.WriteElementString("length", region.FileLength.ToString()); writer.WriteElementString("offset", region.Offset.ToString()); using (Stream dataStream = region.GetStream()) { byte[] data = new byte[dataStream.Length]; dataStream.Read(data, 0, data.Length); writer.WriteElementString("data", System.Convert.ToBase64String(data)); } writer.WriteEndElement(); } writer.Close(); logStore.SetArchiveTail(snapshot.LastSequenceNumber); } } static void RestoreFromXML(string fileName) { using (XmlTextReader reader = new XmlTextReader(fileName)) { reader.ReadStartElement("logArchive"); while (reader.IsStartElement()) { string path; long length; long offset; path = reader.ReadElementString("path"); length = System.Int64.Parse(reader.ReadElementString("length")); offset = System.Int64.Parse(reader.ReadElementString("offset")); string dataString = reader.ReadElementString("data"); byte[] data = System.Convert.FromBase64String(dataString); FileStream fileStream; using (fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) { fileStream.SetLength(length); fileStream.Position = offset; fileStream.Write(data, 0, data.Length); } } reader.ReadEndElement(); } } }
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.Community Additions
ADD
Show: