/// <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
        }
Exemple #2
0
        /// <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
        }