Exemple #1
0
        public IEnumerable <string> GetCodeItems(OptionPreference preferLongNames = OptionPreference.Short)
        {
            // -z, --gzip: Filter the archive through gzip(1).
            if ((Flags & TarFlags.Gzip) != 0)
            {
                yield return(preferLongNames == OptionPreference.Long ? "--gzip" : "-z");
            }
            // -Z, --compress: Filter the archive through compress(1).
            if ((Flags & TarFlags.Compress) != 0)
            {
                yield return(preferLongNames == OptionPreference.Long ? "--compress" : "-Z");
            }
            // -v: Verbose
            if ((Flags & TarFlags.Verbose) != 0)
            {
                yield return("-v");
            }
            // -f =tar-archive: Archive
            if (!string.IsNullOrEmpty(ArchiveFileName))
            {
                yield return("-f");

                yield return(ArchiveFileName.ShellQuote());
            }
        }
Exemple #2
0
        private void DoAutoArchive(string fileName, LogEventInfo ev)
        {
            var fi = new FileInfo(fileName);

            if (!fi.Exists)
            {
                return;
            }

            // Console.WriteLine("DoAutoArchive({0})", fileName);
            string fileNamePattern;

            if (ArchiveFileName == null)
            {
                var ext = Path.GetExtension(fileName);
                fileNamePattern = Path.ChangeExtension(fi.FullName, ".{#}" + ext);
            }
            else
            {
                fileNamePattern = ArchiveFileName.Render(ev);
            }

            switch (ArchiveNumbering)
            {
            case ArchiveNumberingMode.Rolling:
                RecursiveRollingRename(fi.FullName, fileNamePattern, 0);
                break;

            case ArchiveNumberingMode.Sequence:
                SequentialArchive(fi.FullName, fileNamePattern);
                break;
            }
        }
        protected override void ProcessRecord()
        {
            foreach (var archiveFileName in ArchiveFileName.Select(_ => Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, _)))
            {
                WriteVerbose($"Getting archive data {archiveFileName}");

                SevenZipExtractor extractor;
                if (!string.IsNullOrEmpty(_password))
                {
                    extractor = new SevenZipExtractor(archiveFileName, _password);
                }
                else
                {
                    extractor = new SevenZipExtractor(archiveFileName);
                }

                using (extractor) {
                    extractor.Check();
                    WriteObject(new ArchiveInformation {
                        FileName     = Path.GetFileName(archiveFileName),
                        FullPath     = Path.GetFullPath(archiveFileName),
                        PackedSize   = extractor.PackedSize,
                        UnpackedSize = extractor.UnpackedSize,
                        FilesCount   = extractor.FilesCount,
                        Format       = extractor.Format,
                        Method       = extractor.ArchiveProperties.Where(prop => prop.Name == "Method").Cast <ArchiveProperty?>().FirstOrDefault()?.Value
                    });
                }
            }
        }
Exemple #4
0
        protected override void ProcessRecord()
        {
            foreach (var archiveFileName in ArchiveFileName.Select(_ => Path.GetFullPath(Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, _))))
            {
                WriteVerbose($"Getting archive data {archiveFileName}");

                SevenZipExtractor extractor;
                if (!string.IsNullOrEmpty(_password))
                {
                    extractor = new SevenZipExtractor(archiveFileName, _password);
                }
                else
                {
                    extractor = new SevenZipExtractor(archiveFileName);
                }

                using (extractor) {
                    foreach (var file in extractor.ArchiveFileData)
                    {
                        WriteObject(new PSObject(file));
                    }
                }
            }
        }