A collection of IO-related static methods.
Exemple #1
0
 /// <summary>
 /// Unzips the specified ZIP file into a new folder with the specified path. If a folder already exists at the path, it is deleted.
 /// </summary>
 public static void UnZipFileAsFolder(string sourceFilePath, string destinationFolderPath)
 {
     IoMethods.DeleteFolder(destinationFolderPath);
     new FastZip().ExtractZip(sourceFilePath, destinationFolderPath, null);
 }
Exemple #2
0
 /// <summary>
 /// Unzips the specified ZIP stream into a new folder with the specified path. If a folder already exists at the path, it is deleted.
 /// </summary>
 public static void UnZipStreamAsFolder(Stream sourceStream, string destinationFolderPath)
 {
     IoMethods.DeleteFolder(destinationFolderPath);
     UnZipStreamIntoFolder(sourceStream, destinationFolderPath);
 }
Exemple #3
0
        // folder <-> ZIP file

        /// <summary>
        /// Zips all files in the specified folder into a new ZIP file with the specified path. If a file already exists at the path, it is overwritten.
        /// </summary>
        public static void ZipFolderAsFile(string sourceFolderPath, string destinationFilePath)
        {
            IoMethods.DeleteFile(destinationFilePath);
            Directory.CreateDirectory(Path.GetDirectoryName(destinationFilePath));
            new FastZip().CreateZip(destinationFilePath, sourceFolderPath, true, null);
        }
        internal static void Test()
        {
            const string outputFolderName = "PdfOpsTests";
            var          outputFolder     = EwlStatics.CombinePaths(TestStatics.OutputFolderPath, outputFolderName);

            IoMethods.DeleteFolder(outputFolder);
            Directory.CreateDirectory(outputFolder);

            var inputTestFiles   = EwlStatics.CombinePaths(TestStatics.InputTestFilesFolderPath, "PdfOps");
            var onePagePdfPath   = EwlStatics.CombinePaths(inputTestFiles, "onepage.pdf");
            var twoPagePdfPath   = EwlStatics.CombinePaths(inputTestFiles, "twopage.pdf");
            var threePagePdfPath = EwlStatics.CombinePaths(inputTestFiles, "threepage.pdf");

            var explanations = new List <Tuple <String, String> >();

            //ConcatPdfs

            using (var onePage = File.OpenRead(onePagePdfPath)) {
                const string concatOnePdf = "ConcatOne.pdf";
                using (var concatFile = File.OpenWrite(EwlStatics.CombinePaths(outputFolder, concatOnePdf)))
                    ConcatPdfs(onePage.ToCollection(), concatFile);
                explanations.Add(Tuple.Create(concatOnePdf, "This file should be exactly the same as {0}.".FormatWith(onePagePdfPath)));

                resetFileStream(onePage);
                using (var twoPage = File.OpenRead(twoPagePdfPath)) {
                    const string concatTwoPdfs = "ConcatTwo.pdf";
                    using (var concatFile = File.OpenWrite(EwlStatics.CombinePaths(outputFolder, concatTwoPdfs)))
                        ConcatPdfs(new[] { onePage, twoPage }, concatFile);
                    explanations.Add(
                        Tuple.Create(concatTwoPdfs, "This file should look like {0} immediately followed by {1}.".FormatWith(onePagePdfPath, twoPagePdfPath)));

                    resetFileStream(onePage, twoPage);
                    using (var threePage = File.OpenRead(threePagePdfPath)) {
                        const string concatThreePdfs = "ConcatThree.pdf";
                        using (var concatFile = File.OpenWrite(EwlStatics.CombinePaths(outputFolder, concatThreePdfs)))
                            ConcatPdfs(new[] { onePage, twoPage, threePage }, concatFile);
                        explanations.Add(
                            Tuple.Create(
                                concatThreePdfs,
                                "This file should look like {0} immediately followed by {1} immediately followed by {2}.".FormatWith(
                                    onePagePdfPath,
                                    twoPagePdfPath,
                                    threePagePdfPath)));
                    }
                }
            }

            //CreateBookmarkedPdf

            using (var onePage = new MemoryStream()) {
                File.OpenRead(onePagePdfPath).CopyTo(onePage);
                const string bookmarkOnePdf = "BookmarkOne.pdf";
                const string bookmarkTitle  = "Bookmark 1";
                using (var bookmarkFile = File.OpenWrite(EwlStatics.CombinePaths(outputFolder, bookmarkOnePdf)))
                    CreateBookmarkedPdf(Tuple.Create(bookmarkTitle, onePage).ToCollection(), bookmarkFile);
                explanations.Add(
                    Tuple.Create(bookmarkOnePdf, "This should be {0} labeled with one bookmark named {1}.".FormatWith(onePagePdfPath, bookmarkTitle)));

                using (var twoPage = new MemoryStream()) {
                    File.OpenRead(twoPagePdfPath).CopyTo(twoPage);
                    const string bookmarkTwoPdf      = "BookmarkTwo.pdf";
                    const string firstBookmarkTitle  = "First bookmark";
                    const string secondBookmarkTitle = "Second bookmark";
                    using (var bookmarkFile = File.OpenWrite(EwlStatics.CombinePaths(outputFolder, bookmarkTwoPdf)))
                        CreateBookmarkedPdf(new[] { Tuple.Create(firstBookmarkTitle, onePage), Tuple.Create(secondBookmarkTitle, twoPage) }, bookmarkFile);
                    explanations.Add(
                        Tuple.Create(
                            bookmarkTwoPdf,
                            "This should be {0} labeled with bookmark named {1} followed by {2} with the title of {3}.".FormatWith(
                                onePagePdfPath,
                                firstBookmarkTitle,
                                twoPagePdfPath,
                                secondBookmarkTitle)));

                    using (var threePage = new MemoryStream()) {
                        File.OpenRead(threePagePdfPath).CopyTo(threePage);
                        const string bookmarkThreePdf   = "BookmarkThree.pdf";
                        const string thirdBookmarkTItle = "Third bookmark";
                        using (var bookmarkFile = File.OpenWrite(EwlStatics.CombinePaths(outputFolder, bookmarkThreePdf))) {
                            CreateBookmarkedPdf(
                                new[]
                            {
                                Tuple.Create(firstBookmarkTitle, onePage), Tuple.Create(secondBookmarkTitle, twoPage), Tuple.Create(thirdBookmarkTItle, threePage)
                            },
                                bookmarkFile);
                        }
                        explanations.Add(
                            Tuple.Create(
                                bookmarkThreePdf,
                                "This should be {0} labeled with bookmark named {1} followed by {2} with the title of {3} followed by {4} with the title of {5}.".FormatWith(
                                    onePagePdfPath,
                                    firstBookmarkTitle,
                                    twoPagePdfPath,
                                    secondBookmarkTitle,
                                    threePagePdfPath,
                                    thirdBookmarkTItle)));
                    }
                }
            }


            TestStatics.OutputReadme(outputFolder, explanations);
        }