/// <summary> /// Валидация fb2, fb2.zip ли fbz файлов по пути FilePath /// </summary> /// <returns>Пустая строка, файл валиден; Строка с сообщением, если файл невалиден</returns> public string ValidatingFB2File(string FilePath) { bool IsZip = false; string Result = validate(FilePath, Settings.Settings.SchemePath, ref IsZip); if (IsZip) // удаляем временные файлы только, если проверяли архив { FilesWorker.RemoveDir(_TempDir); } return(Result); }
/// <summary> /// Сравнение 2-х файлов: fb2, fb2 из zip или fb2 из fbz /// </summary> /// <param name="DiffPath">Путь к diff-программе сравнения fb2 файла</param> /// <param name="FB2File1Path">Путь к 1-му исходному fb2, zip или fbz-файлу</param> /// <param name="FB2File2Path">Путь ко 2-му исходному fb2, zip или fbz-файлу</param> /// <param name="TempDirForFile1">Путь к временной папке для 1-го распакованного fb2 файла </param> /// <param name="TempDirForFile2">Путь к временной папке для 2-го распакованного fb2 файла </param> public static void DiffFB2(string DiffPath, string FB2File1Path, string FB2File2Path, string TempDirForFile1, string TempDirForFile2) { Cursor.Current = Cursors.WaitCursor; string TempFile1Path = null; string TempFile2Path = null; // создание путей (или распаковка) к исходным fb2 файлам, участвующим в сравнении if (FilesWorker.isFB2File(FB2File1Path)) { TempFile1Path = FB2File1Path; } else if (FilesWorker.isFB2Archive(FB2File1Path)) { TempFile1Path = getFileFromZipFBZ(FB2File1Path, TempDirForFile1); } if (FilesWorker.isFB2File(FB2File2Path)) { TempFile2Path = FB2File2Path; } else if (FilesWorker.isFB2Archive(FB2File2Path)) { TempFile2Path = getFileFromZipFBZ(FB2File2Path, TempDirForFile2); } // Сравнение файлов if (!string.IsNullOrWhiteSpace(TempFile1Path) && !string.IsNullOrWhiteSpace(TempFile2Path)) { FilesWorker.StartDiff(true, DiffPath, TempFile1Path, TempFile2Path); } // завершенн работы (перепаковка файла(ов), если он(они) были извлечены из архива) if (FilesWorker.isFB2Archive(FB2File1Path) && !string.IsNullOrWhiteSpace(TempFile1Path)) { WorksWithBooks.zipMoveTempFB2FileTo(m_sharpZipLib, TempFile1Path, FB2File1Path); } if (FilesWorker.isFB2Archive(FB2File2Path) && !string.IsNullOrWhiteSpace(TempFile2Path)) { WorksWithBooks.zipMoveTempFB2FileTo(m_sharpZipLib, TempFile2Path, FB2File2Path); } // удаление временных файлов, если они есть FilesWorker.RemoveDir(TempDirForFile1); FilesWorker.RemoveDir(TempDirForFile2); Cursor.Current = Cursors.Default; }
/// <summary> /// Правка fb2 и перепаковка fb2 из zip, fbz /// </summary> /// <param name="SourceFilePath">Путь к исходному fb2, zip или fbz-файлу</param> /// <param name="FB2ProgramPath">Путь к программе правки fb2 файла</param> public static void StartFB2_FBZForEdit(string SourceFilePath, string FB2ProgramPath) { Cursor.Current = Cursors.WaitCursor; if (FilesWorker.isFB2Archive(SourceFilePath)) { string TempFileFromZipPath = getFileFromZipFBZ(SourceFilePath, m_TempDir); if (!string.IsNullOrWhiteSpace(TempFileFromZipPath)) { FilesWorker.StartFile(true, FB2ProgramPath, TempFileFromZipPath); WorksWithBooks.zipMoveTempFB2FileTo(m_sharpZipLib, TempFileFromZipPath, SourceFilePath); FilesWorker.RemoveDir(m_TempDir); } } else { FilesWorker.StartFile(true, FB2ProgramPath, SourceFilePath); } Cursor.Current = Cursors.Default; }