Beispiel #1
0
        static void Main(string[] args)
        {
            string temp      = args.Length > 0 ? args[0] : @"c:\temp";
            string tempunzip = Path.Combine(temp, "unzip");
            string filepath  = Path.Combine(temp, "uziptest.zip");

            Console.WriteLine("start");
            try
            {
                File.Delete(filepath);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Ignore : " + ex);
            }

            using (var def = new DeflateZipFile(filepath))
            {
                // compress files
                def.Compress("../UZipDotNet/DeflateZipFile.cs", "NewFileName.txt");
                def.Compress("../UZipDotNet/DeflateMethod.cs", "DeflateMethod.cs");

                // save archive
                def.Save();
            }

            // un-compress files
            using (var inf = new InflateZipFile(filepath))
            {
                inf.Decompress(inf.ZipDir[0], tempunzip, null, true, true);
                inf.Decompress(inf.ZipDir[1], tempunzip, null, true, true);
            }
            Console.WriteLine("end");
        }
Beispiel #2
0
        private static void CrawlDir(string sourceFolder, string destFolder)
        {
            try
            {
                string folderName = Path.GetFileName(sourceFolder);
                var    files      = Directory.GetFiles(sourceFolder).OrderBy(f => f);

                if (files.Any())
                {
                    if (!Directory.Exists(destFolder))
                    {
                        Directory.CreateDirectory(destFolder);
                    }

                    string zipFileName = Path.Combine(destFolder, folderName + ".zip");
                    bool   doZipFile   = true;
                    if (File.Exists(zipFileName))
                    {
                        if (Options.OverwriteFiles)
                        {
                            DeleteFile(zipFileName);
                        }
                        else
                        {
                            doZipFile = false;
                        }
                    }

                    if (doZipFile)
                    {
                        using (var def = new DeflateZipFile(zipFileName, Options.CompressionLevel))
                        {
                            // compress files
                            foreach (string file in files)
                            {
                                //string archiveFilename =
                                def.Compress(file, file);
                            }

                            // save archive
                            def.Save();
                        }
                    }

                    string txtFileName = Path.Combine(destFolder, folderName + ".txt");
                    if (Options.CreateTextFile)
                    {
                        bool doTxtFile = true;
                        if (File.Exists(txtFileName))
                        {
                            if (Options.OverwriteFiles)
                            {
                                DeleteFile(txtFileName);
                            }
                            else
                            {
                                doTxtFile = false;
                            }
                        }

                        if (doTxtFile)
                        {
                            using (var sr = File.CreateText(txtFileName))
                            {
                                long bytes = 0;
                                foreach (var file in files)
                                {
                                    var fi = new FileInfo(file);

                                    sr.WriteLine(FileFormat, fi.CreationTime, fi.Length, fi.Name);
                                    bytes += fi.Length;
                                }

                                sr.WriteLine(TotalFormat, files.Count(), bytes);
                            }
                        }
                    }

                    if (Options.CreateSummaryTextFile)
                    {
                        AllFiles.AddRange(files);
                    }

                    if (Options.ShowProgress)
                    {
                        int progress = (int)(AllFiles.Count * 100.0d / AllFilesToCrawl.Count);
                        if (progress % 2 == 0)
                        {
                            ProgressBar.Draw(progress);
                        }
                    }
                }

                foreach (string subFolder in Directory.GetDirectories(sourceFolder).OrderBy(d => d))
                {
                    CrawlDir(subFolder, GetPath(subFolder, destFolder));
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }