/// <summary> /// Extract from OST container /// </summary> public static void ExtractFromOstContainer(string fileName) { //ExStart:ExtractFromOstContainer ExtractorFactory factory = new ExtractorFactory(); //get OST file's path string filePath = Common.getFilePath(fileName); using (var container = new PersonalStorageContainer(filePath)) { for (int i = 0; i < container.Entities.Count; i++) { Console.WriteLine(container.Entities[i].Name); Console.WriteLine(container.Entities[i].Path.ToString()); Console.WriteLine(container.Entities[i].MediaType); Console.WriteLine(container.Entities[i][PersonalStorageContainer.EmailSubject]); Console.WriteLine(container.Entities[i][PersonalStorageContainer.EmailSender]); Console.WriteLine(container.Entities[i][PersonalStorageContainer.EmailReceiver]); using (TextExtractor extractor = factory.CreateTextExtractor(container.Entities[i].OpenStream())) { Console.WriteLine("Content:"); Console.WriteLine(extractor != null ? extractor.ExtractAll() : "The document format is not supported"); } } } //ExEnd:ExtractFromOstContainer }
/// <summary> /// Extracts from OST(pst) container with improved memory consumption /// </summary> public static void ExtractTextFromOstContainer2(string fileName) { //ExStart:ExtractTextFromOstContainer2_18.2 var container = new PersonalStorageContainer(Common.GetFilePath(fileName)); var enumerator = container.Entities.GetEnumerator(); while (enumerator.MoveNext()) { var entity = enumerator.Current; using (var entityStream = entity.OpenStream()) { using (var extractor = new EmailTextExtractor(entityStream)) { string content = extractor.ExtractAll(); Console.WriteLine(entity[PersonalStorageContainer.EmailSubject]); Console.WriteLine(entity[PersonalStorageContainer.EmailSender]); Console.WriteLine(entity[PersonalStorageContainer.EmailReceiver]); Console.WriteLine(content); } } } //ExEnd:ExtractTextFromOstContainer2_18.2 }