/// <summary> /// Изъять информацию из презентации /// </summary> /// <param name="ppFilePath">Полный путь к презентации</param> /// <returns>Информация о презентации</returns> public PresentationInfo ExtractInfo(string ppFilePath, ILastInsertedPPTInfoId pptidInfo) { PresentationInfo presInfo = null; long pptCurrentFileId = pptidInfo.GetCurrentPresentationIndex(); if (SupportedArchiveFormats.Contains(Path.GetExtension(ppFilePath))) { ExtractArchive(ppFilePath); List <string> allDirectories = Directory.GetDirectories(_ExtractDir).ToList(); allDirectories.Add(_ExtractDir); bool isFileFound = false; foreach (string dir in allDirectories) { foreach (string filePath in Directory.GetFiles(dir)) { if (SupportedPowerPointFileFormats.Contains(Path.GetExtension(filePath))) { PPTFile pptFile = new PPTFile(filePath, pptCurrentFileId, ppFilePath); if (ParseSlideCompleteCallback != null) { pptFile.ParseSlideComplite += ParseSlideCompleteCallback; } presInfo = pptFile.ParsePreesentation(); isFileFound = true; if (ParseSlideCompleteCallback != null) { pptFile.ParseSlideComplite -= ParseSlideCompleteCallback; } FileInfo archiveInfo = new FileInfo(ppFilePath); presInfo.FileSize = archiveInfo.Length; break; } } } if (!isFileFound) { _IsErrorExists = true; throw new Exception(String.Format("Файл презентации в архиве не найден\nАрхив был распакован в папку: {0}\nПри следующем запуске программы архив будет удален из временного хранилища", _ExtractDir)); } ZipFileOrDirectory(_ExtractDir, presInfo); } else { PPTFile pptFile = new PPTFile(ppFilePath, pptCurrentFileId); if (ParseSlideCompleteCallback != null) { pptFile.ParseSlideComplite += ParseSlideCompleteCallback; } presInfo = pptFile.ParsePreesentation(); if (ParseSlideCompleteCallback != null) { pptFile.ParseSlideComplite -= ParseSlideCompleteCallback; } FileInfo fileInfo = new FileInfo(ppFilePath); presInfo.FileSize = fileInfo.Length; ZipFileOrDirectory(ppFilePath, presInfo); } return(presInfo); }
/// <summary> /// Изъять информацию из презентации /// </summary> /// <param name="ppFilePath">Полный путь к презентации</param> /// <returns>Информация о презентации</returns> public PresentationInfo ExtractInfo(string ppFilePath, ILastInsertedPPTInfoId pptidInfo) { PresentationInfo presInfo = null; long pptCurrentFileId = pptidInfo.GetCurrentPresentationIndex(); if (SupportedArchiveFormats.Contains(Path.GetExtension(ppFilePath))) { ExtractArchive(ppFilePath); List<string> allDirectories = Directory.GetDirectories(_ExtractDir).ToList(); allDirectories.Add(_ExtractDir); bool isFileFound = false; foreach (string dir in allDirectories) { foreach (string filePath in Directory.GetFiles(dir)) { if (SupportedPowerPointFileFormats.Contains(Path.GetExtension(filePath))) { PPTFile pptFile = new PPTFile(filePath, pptCurrentFileId, ppFilePath); if (ParseSlideCompleteCallback != null) pptFile.ParseSlideComplite += ParseSlideCompleteCallback; presInfo = pptFile.ParsePreesentation(); isFileFound = true; if (ParseSlideCompleteCallback != null) pptFile.ParseSlideComplite -= ParseSlideCompleteCallback; FileInfo archiveInfo = new FileInfo(ppFilePath); presInfo.FileSize = archiveInfo.Length; break; } } } if (!isFileFound) { _IsErrorExists = true; throw new Exception(String.Format("Файл презентации в архиве не найден\nАрхив был распакован в папку: {0}\nПри следующем запуске программы архив будет удален из временного хранилища", _ExtractDir)); } ZipFileOrDirectory(_ExtractDir, presInfo); } else { PPTFile pptFile = new PPTFile(ppFilePath, pptCurrentFileId); if (ParseSlideCompleteCallback != null) pptFile.ParseSlideComplite += ParseSlideCompleteCallback; presInfo = pptFile.ParsePreesentation(); if (ParseSlideCompleteCallback != null) pptFile.ParseSlideComplite -= ParseSlideCompleteCallback; FileInfo fileInfo = new FileInfo(ppFilePath); presInfo.FileSize = fileInfo.Length; ZipFileOrDirectory(ppFilePath, presInfo); } return presInfo; }