DeleteFolder() 공개 정적인 메소드

Deletes the specified directory and its contents, if the directory exists. Supports deletion of partially or fully read-only directories.
public static DeleteFolder ( string path ) : void
path string
리턴 void
예제 #1
0
        internal static void Test()
        {
            // NOTE: This path is probably wrong, and should not be hard-coded.
            const string sourceFolderPath = @"C:\Red Stapler Vault\Supporting Files\Standard Library\Standard Library\MailMerging";

            var outputFolderPath = TestStatics.OutputFolderPath;

            IoMethods.DeleteFolder(outputFolderPath);

            // Create and extract empty zip file
            var emptyFolderPath = EwlStatics.CombinePaths(outputFolderPath, "Empty");

            Directory.CreateDirectory(emptyFolderPath);
            var emptyZipPath = EwlStatics.CombinePaths(outputFolderPath, "empty.zip");

            ZipFolderAsFile(emptyFolderPath, emptyZipPath);
            using (var memoryStream = new MemoryStream()) {
                ZipFolderAsStream(emptyFolderPath, memoryStream);
                memoryStream.Reset();
                UnZipStreamIntoFolder(memoryStream, EwlStatics.CombinePaths(outputFolderPath, "Empty from stream"));
            }

            // File-based
            var zipFilePath   = EwlStatics.CombinePaths(outputFolderPath, "file.zip");
            var extractedPath = EwlStatics.CombinePaths(outputFolderPath, "Extracted from File");

            ZipFolderAsFile(sourceFolderPath, zipFilePath);
            UnZipFileAsFolder(zipFilePath, extractedPath);

            // Byte-array-based
            var bytes           = ZipFolderAsByteArray(sourceFolderPath);
            var byteZipFilePath = EwlStatics.CombinePaths(outputFolderPath, "fileFromBytes.zip");

            File.WriteAllBytes(byteZipFilePath, bytes);
            UnZipByteArrayAsFolder(File.ReadAllBytes(byteZipFilePath), EwlStatics.CombinePaths(outputFolderPath, "Extracted from Byte Array"));

            // Stream-based
            var streamedFilePath = EwlStatics.CombinePaths(outputFolderPath, "fileFromStream.zip");

            using (var fs = new FileStream(streamedFilePath, FileMode.Create))
                ZipFolderAsStream(sourceFolderPath, fs);

            var streamedExtractedPath = EwlStatics.CombinePaths(outputFolderPath, "Extracted from Stream");

            using (var memoryStream = new MemoryStream()) {
                ZipFolderAsStream(sourceFolderPath, memoryStream);
                memoryStream.Reset();
                UnZipStreamIntoFolder(memoryStream, streamedExtractedPath);
            }

            using (var fs = File.OpenRead(streamedFilePath)) {
                var files = UnZipStreamAsFileObjects(fs);
                ZipFileObjectsAsStream(files, File.OpenWrite(EwlStatics.CombinePaths(outputFolderPath, "fileFromStreamedFileObjects.zip")));
            }
        }
예제 #2
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);
 }
예제 #3
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);
 }
예제 #4
0
        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);
        }