예제 #1
0
 public ZipEntryFactory(TimeSetting timeSetting)
 {
     _fixedDateTime = DateTime.Now;
     _getAttributes = -1;
     _timeSetting   = timeSetting;
     _nameTransform = new ZipNameTransform();
 }
예제 #2
0
 public ZipEntryFactory(TimeSetting timeSetting)
 {
     fixedDateTime_ = DateTime.Now;
     getAttributes_ = -1;
     timeSetting_ = timeSetting;
     nameTransform_ = new ZipNameTransform();
 }
예제 #3
0
 public ZipEntryFactory(TimeSetting timeSetting)
 {
     _fixedDateTime = DateTime.Now;
     _getAttributes = -1;
     _timeSetting = timeSetting;
     _nameTransform = new ZipNameTransform();
 }
예제 #4
0
 public ZipEntryFactory(TimeSetting timeSetting)
 {
     this.fixedDateTime_ = DateTime.Now;
     this.getAttributes_ = -1;
     this.timeSetting_   = timeSetting;
     this.nameTransform_ = new ZipNameTransform();
 }
예제 #5
0
        private void ExtractEntry(ZipFile zipFile, ZipEntry entry, string entryName, INameTransform extractNameTransform)
        {
            if (!entry.IsCompressionMethodSupported())
            {
                return;
            }

            if (entry.IsFile)
            {
                entryName = extractNameTransform.TransformFile(entryName);
            }
            else if (entry.IsDirectory)
            {
                entryName = extractNameTransform.TransformDirectory(entryName);
            }

            if (!String.IsNullOrEmpty(entryName))
            {
                Directory.CreateDirectory(
                    !entry.IsDirectory ? Path.GetDirectoryName(Path.GetFullPath(entryName)) : entryName
                    );

                if (entry.IsFile)
                {
                    ExtractFileEntry(zipFile, entry, entryName);
                }
            }
        }
예제 #6
0
 public ZipEntryFactory(DateTime time)
 {
     _fixedDateTime = DateTime.Now;
     _getAttributes = -1;
     _timeSetting   = TimeSetting.Fixed;
     FixedDateTime  = time;
     _nameTransform = new ZipNameTransform();
 }
예제 #7
0
 public ZipEntryFactory(DateTime time)
 {
     fixedDateTime_ = DateTime.Now;
     getAttributes_ = -1;
     timeSetting_ = TimeSetting.Fixed;
     FixedDateTime = time;
     nameTransform_ = new ZipNameTransform();
 }
예제 #8
0
 public ZipEntryFactory(DateTime time)
 {
     this.fixedDateTime_ = DateTime.Now;
     this.getAttributes_ = -1;
     this.timeSetting_   = TimeSetting.Fixed;
     this.FixedDateTime  = time;
     this.nameTransform_ = new ZipNameTransform();
 }
예제 #9
0
 public ZipEntryFactory(DateTime time)
 {
     _fixedDateTime = DateTime.Now;
     _getAttributes = -1;
     _timeSetting = TimeSetting.Fixed;
     FixedDateTime = time;
     _nameTransform = new ZipNameTransform();
 }
        public static DbContextOptionsBuilder UseNamingConvention(
            this DbContextOptionsBuilder optionsBuilder,
            INameTransform transformer)
        {
            optionsBuilder = optionsBuilder ?? throw new ArgumentNullException(nameof(optionsBuilder));

            var extension = (optionsBuilder.Options.FindExtension <NamingConventionOptionsExtension>()
                             ?? new NamingConventionOptionsExtension())
                            .WithNameTransform(transformer);

            ((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(extension);

            return(optionsBuilder);
        }
예제 #11
0
 /// <summary>
 /// Prepares this FileMap for further use
 /// </summary>
 /// <param name="fill">indicates whether to fill the entries</param>
 private void Prepare(bool fill)
 {
     if (direction == MapDirection.FileToArchive)
     {
         transformer = new ZipNameTransform(RootDir);
         if (fill && Directory.Exists(RootDir))
         {
             GetAllFiles(RootDir, entries);
         }
     }
     else
     {
         transformer = new WindowsNameTransform(RootDir);
     }
 }
예제 #12
0
        /// <summary>
        /// Extract the contents of a zip file held in a stream.
        /// </summary>
        /// <param name="inputStream">The seekable input stream containing the zip to extract from.</param>
        /// <param name="targetDirectory">The directory to save extracted information in.</param>
        /// <param name="overwrite">The style of <see cref="Overwrite">overwriting</see> to apply.</param>
        /// <param name="confirmDelegate">A delegate to invoke when confirming overwriting.</param>
        /// <param name="fileFilter">A filter to apply to files.</param>
        /// <param name="directoryFilter">A filter to apply to directories.</param>
        /// <param name="restoreDateTime">Flag indicating whether to restore the date and time for extracted files.</param>
        /// <param name="isStreamOwner">Flag indicating whether the inputStream will be closed by this method.</param>
        public void ExtractZip(Stream inputStream, string targetDirectory,
                               Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate,
                               string fileFilter, string directoryFilter, bool restoreDateTime,
                               bool isStreamOwner)
        {
            if ((overwrite == Overwrite.Prompt) && (confirmDelegate == null))
            {
                throw new ArgumentNullException("confirmDelegate");
            }

            continueRunning_      = true;
            overwrite_            = overwrite;
            confirmDelegate_      = confirmDelegate;
            extractNameTransform_ = new WindowsNameTransform(targetDirectory);

            fileFilter_               = new NameFilter(fileFilter);
            directoryFilter_          = new NameFilter(directoryFilter);
            restoreDateTimeOnExtract_ = restoreDateTime;

            using (zipFile_ = new ZipFile(inputStream)) {
                zipFile_.IsStreamOwner = isStreamOwner;
                System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
                while (continueRunning_ && enumerator.MoveNext())
                {
                    ZipEntry entry = (ZipEntry)enumerator.Current;
                    if (entry.IsFile)
                    {
                        // TODO Path.GetDirectory can fail here on invalid characters.
                        if (directoryFilter_.IsMatch(Path.GetDirectoryName(entry.Name)) && fileFilter_.IsMatch(entry.Name))
                        {
                            ExtractEntry(entry);
                        }
                    }
                    else if (entry.IsDirectory)
                    {
                        if (directoryFilter_.IsMatch(entry.Name) && CreateEmptyDirectories)
                        {
                            ExtractEntry(entry);
                        }
                    }
                    else
                    {
                        // Do nothing for volume labels etc...
                    }
                }
            }
        }
예제 #13
0
 public void ExtractZip(Stream inputStream, string targetDirectory, FastZip.Overwrite overwrite, FastZip.ConfirmOverwriteDelegate confirmDelegate, string fileFilter, string directoryFilter, bool restoreDateTime, bool isStreamOwner)
 {
     if (overwrite == FastZip.Overwrite.Prompt && confirmDelegate == null)
     {
         throw new ArgumentNullException("confirmDelegate");
     }
     this.continueRunning_          = true;
     this.overwrite_                = overwrite;
     this.confirmDelegate_          = confirmDelegate;
     this.extractNameTransform_     = new WindowsNameTransform(targetDirectory);
     this.fileFilter_               = new NameFilter(fileFilter);
     this.directoryFilter_          = new NameFilter(directoryFilter);
     this.restoreDateTimeOnExtract_ = restoreDateTime;
     using (this.zipFile_ = new ZipFile(inputStream))
     {
         if (this.password_ != null)
         {
             this.zipFile_.Password = this.password_;
         }
         this.zipFile_.IsStreamOwner = isStreamOwner;
         IEnumerator enumerator = this.zipFile_.GetEnumerator();
         while (this.continueRunning_ && enumerator.MoveNext())
         {
             ZipEntry zipEntry = (ZipEntry)enumerator.Current;
             if (zipEntry.IsFile)
             {
                 if (this.directoryFilter_.IsMatch(Path.GetDirectoryName(zipEntry.Name)) && this.fileFilter_.IsMatch(zipEntry.Name))
                 {
                     this.ExtractEntry(zipEntry);
                 }
             }
             else if (zipEntry.IsDirectory)
             {
                 if (this.directoryFilter_.IsMatch(zipEntry.Name) && this.CreateEmptyDirectories)
                 {
                     this.ExtractEntry(zipEntry);
                 }
             }
         }
     }
 }
예제 #14
0
 public void ExtractZip(Stream inputStream, string targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, string fileFilter, string directoryFilter, bool restoreDateTime, bool isStreamOwner)
 {
     //IL_000c: Unknown result type (might be due to invalid IL or missing references)
     if (overwrite == Overwrite.Prompt && confirmDelegate == null)
     {
         throw new ArgumentNullException("confirmDelegate");
     }
     continueRunning_          = true;
     overwrite_                = overwrite;
     confirmDelegate_          = confirmDelegate;
     extractNameTransform_     = new WindowsNameTransform(targetDirectory);
     fileFilter_               = new NameFilter(fileFilter);
     directoryFilter_          = new NameFilter(directoryFilter);
     restoreDateTimeOnExtract_ = restoreDateTime;
     using (zipFile_ = new ZipFile(inputStream))
     {
         if (password_ != null)
         {
             zipFile_.Password = password_;
         }
         zipFile_.IsStreamOwner = isStreamOwner;
         global::System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
         while (continueRunning_ && enumerator.MoveNext())
         {
             ZipEntry zipEntry = (ZipEntry)enumerator.get_Current();
             if (zipEntry.IsFile)
             {
                 if (directoryFilter_.IsMatch(Path.GetDirectoryName(zipEntry.Name)) && fileFilter_.IsMatch(zipEntry.Name))
                 {
                     ExtractEntry(zipEntry);
                 }
             }
             else if (zipEntry.IsDirectory && directoryFilter_.IsMatch(zipEntry.Name) && CreateEmptyDirectories)
             {
                 ExtractEntry(zipEntry);
             }
         }
     }
 }
예제 #15
0
 public void ExtractZip(Stream inputStream, string targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, string fileFilter, string directoryFilter, bool restoreDateTime, bool isStreamOwner)
 {
     if ((overwrite == Overwrite.Prompt) && (confirmDelegate == null))
     {
         throw new ArgumentNullException(nameof(confirmDelegate));
     }
     _continueRunning          = true;
     _overwrite                = overwrite;
     _confirmDelegate          = confirmDelegate;
     _extractNameTransform     = new WindowsNameTransform(targetDirectory);
     _fileFilter               = new NameFilter(fileFilter);
     _directoryFilter          = new NameFilter(directoryFilter);
     _restoreDateTimeOnExtract = restoreDateTime;
     using (_zipFile = new ZipFile(inputStream))
     {
         if (_password != null)
         {
             _zipFile.Password = _password;
         }
         _zipFile.IsStreamOwner = isStreamOwner;
         IEnumerator enumerator = _zipFile.GetEnumerator();
         while (_continueRunning && enumerator.MoveNext())
         {
             ZipEntry current = (ZipEntry)enumerator.Current;
             if (current.IsFile)
             {
                 if (_directoryFilter.IsMatch(Path.GetDirectoryName(current.Name)) && _fileFilter.IsMatch(current.Name))
                 {
                     ExtractEntry(current);
                 }
             }
             else if ((current.IsDirectory && _directoryFilter.IsMatch(current.Name)) && CreateEmptyDirectories)
             {
                 ExtractEntry(current);
             }
         }
     }
 }
예제 #16
0
 public NamingConvention(INameTransform transformer) => this.transformer = transformer;
예제 #17
0
 public void ExtractZip(Stream inputStream, string targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, string fileFilter, string directoryFilter, bool restoreDateTime, bool isStreamOwner)
 {
     if ((overwrite == Overwrite.Prompt) && (confirmDelegate == null))
     {
         throw new ArgumentNullException(nameof(confirmDelegate));
     }
     _continueRunning = true;
     _overwrite = overwrite;
     _confirmDelegate = confirmDelegate;
     _extractNameTransform = new WindowsNameTransform(targetDirectory);
     _fileFilter = new NameFilter(fileFilter);
     _directoryFilter = new NameFilter(directoryFilter);
     _restoreDateTimeOnExtract = restoreDateTime;
     using (_zipFile = new ZipFile(inputStream))
     {
         if (_password != null)
         {
             _zipFile.Password = _password;
         }
         _zipFile.IsStreamOwner = isStreamOwner;
         IEnumerator enumerator = _zipFile.GetEnumerator();
         while (_continueRunning && enumerator.MoveNext())
         {
             ZipEntry current = (ZipEntry)enumerator.Current;
             if (current.IsFile)
             {
                 if (_directoryFilter.IsMatch(Path.GetDirectoryName(current.Name)) && _fileFilter.IsMatch(current.Name))
                 {
                     ExtractEntry(current);
                 }
             }
             else if ((current.IsDirectory && _directoryFilter.IsMatch(current.Name)) && CreateEmptyDirectories)
             {
                 ExtractEntry(current);
             }
         }
     }
 }
예제 #18
0
        private void ExtractEntry(ZipFile zipFile, ZipEntry entry, string entryName, INameTransform extractNameTransform)
        {
            if (!entry.IsCompressionMethodSupported())
                return;

            if (entry.IsFile)
                entryName = extractNameTransform.TransformFile(entryName);
            else if (entry.IsDirectory)
                entryName = extractNameTransform.TransformDirectory(entryName);

            if (!String.IsNullOrEmpty(entryName))
            {
                Directory.CreateDirectory(
                    !entry.IsDirectory ? Path.GetDirectoryName(Path.GetFullPath(entryName)) : entryName
                );

                if (entry.IsFile)
                    ExtractFileEntry(zipFile, entry, entryName);
            }
        }
예제 #19
0
파일: FastZip.cs 프로젝트: BioBrainX/fomm
        /// <summary>
        /// Extract the contents of a zip file.
        /// </summary>
        /// <param name="zipFileName">The zip file to extract from.</param>
        /// <param name="targetDirectory">The directory to save extracted information in.</param>
        /// <param name="overwrite">The style of <see cref="Overwrite">overwriting</see> to apply.</param>
        /// <param name="confirmDelegate">A delegate to invoke when confirming overwriting.</param>
        /// <param name="fileFilter">A filter to apply to files.</param>
        /// <param name="directoryFilter">A filter to apply to directories.</param>
        /// <param name="restoreDateTime">Flag indicating wether to restore the date and time for extracted files.</param>
        public void ExtractZip(string zipFileName, string targetDirectory, string fileFilter, string directoryFilter)
        {
            continueRunning_ = true;
            extractNameTransform_ = new WindowsNameTransform(targetDirectory);

            fileFilter_ = new NameFilter(fileFilter);
            directoryFilter_ = new NameFilter(directoryFilter);

            using(zipFile_ = new ZipFile(zipFileName)) {

                System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
                while(continueRunning_ && enumerator.MoveNext()) {
                    ZipEntry entry = (ZipEntry)enumerator.Current;
                    if(entry.IsFile) {
                        // TODO Path.GetDirectory can fail here on invalid characters.
                        if(directoryFilter_.IsMatch(Path.GetDirectoryName(entry.Name)) && fileFilter_.IsMatch(entry.Name)) {
                            ExtractEntry(entry);
                        }
                    }
                }
            }
        }
예제 #20
0
 public ZipEntryFactory(global::System.DateTime time)
 {
     timeSetting_   = TimeSetting.Fixed;
     FixedDateTime  = time;
     nameTransform_ = new ZipNameTransform();
 }
예제 #21
0
        /// <summary>
        /// Extract the contents of a zip file.
        /// </summary>
        /// <param name="zipFileName">The zip file to extract from.</param>
        /// <param name="targetDirectory">The directory to save extracted information in.</param>
        /// <param name="overwrite">The style of <see cref="Overwrite">overwriting</see> to apply.</param>
        /// <param name="confirmDelegate">A delegate to invoke when confirming overwriting.</param>
        /// <param name="fileFilter">A filter to apply to files.</param>
        /// <param name="directoryFilter">A filter to apply to directories.</param>
        /// <param name="restoreDateTime">Flag indicating wether to restore the date and time for extracted files.</param>
        public void ExtractZip(string zipFileName, string targetDirectory, 
            Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate,
            string fileFilter, string directoryFilter, bool restoreDateTime)
        {
            if ( (overwrite == Overwrite.Prompt) && (confirmDelegate == null) ) {
                throw new ArgumentNullException("confirmDelegate");
            }

            continueRunning_ = true;
            overwrite_ = overwrite;
            confirmDelegate_ = confirmDelegate;
            extractNameTransform_ = new WindowsNameTransform(targetDirectory);

            fileFilter_ = new NameFilter(fileFilter);
            directoryFilter_ = new NameFilter(directoryFilter);
            restoreDateTimeOnExtract_ = restoreDateTime;

            using ( zipFile_ = new ZipFile(zipFileName) ) {

            #if !NETCF_1_0
                if (password_ != null) {
                    zipFile_.Password = password_;
                }
            #endif

                System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
                while ( continueRunning_ && enumerator.MoveNext()) {
                    ZipEntry entry = (ZipEntry) enumerator.Current;
                    if ( entry.IsFile )
                    {
                        // TODO Path.GetDirectory can fail here on invalid characters.
                        if ( directoryFilter_.IsMatch(Path.GetDirectoryName(entry.Name)) && fileFilter_.IsMatch(entry.Name) ) {
                            ExtractEntry(entry);
                        }
                    }
                    else if ( entry.IsDirectory ) {
                        if ( directoryFilter_.IsMatch(entry.Name) && CreateEmptyDirectories ) {
                            ExtractEntry(entry);
                        }
                    }
                    else {
                        // Do nothing for volume labels etc...
                    }
                }
            }
        }
 private ZipEntry CreateZipFileEntry (IFileInfo fileInfo, INameTransform nameTransform)
 {
   return new ZipEntry (nameTransform.TransformFile (fileInfo.FullName))
          {
              IsUnicodeText = true,
              Size = fileInfo.Length,
              DateTime = fileInfo.LastWriteTimeUtc
          };
 }
예제 #23
0
 public ZipEntryFactory()
 {
     nameTransform_ = new ZipNameTransform();
 }
예제 #24
0
 /// <summary>
 /// Initialise a new instance of <see cref="ZipEntryFactory"/> using the specified <see cref="TimeSetting"/>
 /// </summary>
 /// <param name="timeSetting">The <see cref="TimeSetting">time setting</see> to use when creating <see cref="ZipEntry">Zip entries</see>.</param>
 public ZipEntryFactory(TimeSetting timeSetting)
 {
     timeSetting_ = timeSetting;
     nameTransform_ = new ZipNameTransform();
 }
예제 #25
0
 protected NamingConventionOptionsExtension([NotNull] NamingConventionOptionsExtension copyFrom)
 {
     this.transformer = copyFrom.transformer;
     this.culture     = copyFrom.culture;
 }
예제 #26
0
 public ZipEntryFactory()
 {
     _fixedDateTime = DateTime.Now;
     _getAttributes = -1;
     _nameTransform = new ZipNameTransform();
 }
예제 #27
0
 public ZipEntryFactory()
 {
     _fixedDateTime = DateTime.Now;
     _getAttributes = -1;
     _nameTransform = new ZipNameTransform();
 }
예제 #28
0
 public void ExtractZip(Stream inputStream, string targetDirectory, Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, string fileFilter, string directoryFilter, bool restoreDateTime, bool isStreamOwner)
 {
     if ((overwrite == Overwrite.Prompt) && (confirmDelegate == null))
     {
         throw new ArgumentNullException("confirmDelegate");
     }
     this.continueRunning_ = true;
     this.overwrite_ = overwrite;
     this.confirmDelegate_ = confirmDelegate;
     this.extractNameTransform_ = new WindowsNameTransform(targetDirectory);
     this.fileFilter_ = new NameFilter(fileFilter);
     this.directoryFilter_ = new NameFilter(directoryFilter);
     this.restoreDateTimeOnExtract_ = restoreDateTime;
     using (this.zipFile_ = new ZipFile(inputStream))
     {
         if (this.password_ != null)
         {
             this.zipFile_.Password = this.password_;
         }
         this.zipFile_.IsStreamOwner = isStreamOwner;
         IEnumerator enumerator = this.zipFile_.GetEnumerator();
         while (this.continueRunning_ && enumerator.MoveNext())
         {
             ZipEntry current = (ZipEntry) enumerator.Current;
             if (current.IsFile)
             {
                 if (this.directoryFilter_.IsMatch(Path.GetDirectoryName(current.Name)) && this.fileFilter_.IsMatch(current.Name))
                 {
                     this.ExtractEntry(current);
                 }
             }
             else if ((current.IsDirectory && this.directoryFilter_.IsMatch(current.Name)) && this.CreateEmptyDirectories)
             {
                 this.ExtractEntry(current);
             }
         }
     }
 }
예제 #29
0
 /// <summary>
 /// Initialise a new instance of <see cref="HfsEntryFactory"/> using the specified <see cref="TimeSetting"/>
 /// </summary>
 /// <param name="timeSetting">The <see cref="TimeSetting">time setting</see> to use when creating <see cref="HfsEntry">Hfs entries</see>.</param>
 public HfsEntryFactory(TimeSetting timeSetting)
 {
     timeSetting_ = timeSetting;
     nameTransform_ = new HfsNameTransform();
 }
예제 #30
0
 /// <summary>
 /// Initialise a new instance of the <see cref="HfsEntryFactory"/> class.
 /// </summary>
 /// <remarks>A default <see cref="INameTransform"/>, and the LastWriteTime for files is used.</remarks>
 public HfsEntryFactory()
 {
     nameTransform_ = new HfsNameTransform();
 }
예제 #31
0
        protected void TestDirectory(INameTransform t, string original, string expected)
        {
            string transformed = t.TransformDirectory(original);

            Assert.AreEqual(expected, transformed, "Should be equal");
        }
예제 #32
0
 public ZipEntryFactory(DateTime time)
 {
     this.timeSetting_   = ZipEntryFactory.TimeSetting.Fixed;
     this.FixedDateTime  = time;
     this.nameTransform_ = new ZipNameTransform();
 }
예제 #33
0
 public ZipEntryFactory(TimeSetting timeSetting)
 {
     timeSetting_   = timeSetting;
     nameTransform_ = new ZipNameTransform();
 }
예제 #34
0
 public ZipEntryFactory()
 {
     this.fixedDateTime_ = DateTime.Now;
     this.getAttributes_ = -1;
     this.nameTransform_ = new ZipNameTransform();
 }
예제 #35
0
 protected void TestFile(INameTransform t, string original, string expected)
 {
     string transformed = t.TransformFile(original);
     Assert.AreEqual(expected, transformed, "Should be equal");
 }
예제 #36
0
 public ZipEntryFactory(ZipEntryFactory.TimeSetting timeSetting)
 {
     this.timeSetting_   = timeSetting;
     this.nameTransform_ = new ZipNameTransform();
 }
예제 #37
0
 /// <summary>
 /// Initialise a new instance of the <see cref="ZipEntryFactory"/> class.
 /// </summary>
 /// <remarks>A default <see cref="INameTransform"/>, and the LastWriteTime for files is used.</remarks>
 public ZipEntryFactory()
 {
     nameTransform_ = new ZipNameTransform();
 }
예제 #38
0
        /// <summary>
        /// Extract the contents of a zip file.
        /// </summary>
        /// <param name="zipFileName">The zip file to extract from.</param>
        /// <param name="targetDirectory">The directory to save extracted information in.</param>
        /// <param name="overwrite">The style of <see cref="Overwrite">overwriting</see> to apply.</param>
        /// <param name="confirmDelegate">A delegate to invoke when confirming overwriting.</param>
        /// <param name="fileFilter">A method-filter to apply to files.</param>
        /// <param name="directoryFilter">A method-filter to apply to directories.</param>
        public void ExtractZip(
            string zipFileName,
            string targetDirectory,
            Overwrite overwrite,
            ConfirmOverwriteDelegate confirmDelegate,
            Func<string, bool> fileFilter,
            Func<string, bool> directoryFilter)
        {
            if ((overwrite == Overwrite.Prompt) && (confirmDelegate == null))
            {
                throw new ArgumentNullException("confirmDelegate");
            }

            continueRunning_ = true;
            overwrite_ = overwrite;
            confirmDelegate_ = confirmDelegate;
            extractNameTransform_ = new WindowsNameTransform(targetDirectory);

            restoreDateTimeOnExtract_ = true;

            Stream inputStream = File.Open(zipFileName, FileMode.Open, FileAccess.Read, FileShare.Read);
            using (zipFile_ = new ZipFile(inputStream))
            {

            #if !NETCF_1_0
                if (password_ != null)
                {
                    zipFile_.Password = password_;
                }
            #endif
                zipFile_.IsStreamOwner = true;
                System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
                while (continueRunning_ && enumerator.MoveNext())
                {
                    ZipEntry entry = (ZipEntry)enumerator.Current;
                    if (entry.IsFile)
                    {
                        // TODO Path.GetDirectory can fail here on invalid characters.
                        if (directoryFilter(Path.GetDirectoryName(entry.Name)) && fileFilter(entry.Name))
                        {
                            ExtractEntry(entry);
                        }
                    }
                    else if (entry.IsDirectory)
                    {
                        if (directoryFilter(entry.Name) && CreateEmptyDirectories)
                        {
                            ExtractEntry(entry);
                        }
                    }
                }
            }
        }
예제 #39
0
 /// <summary>
 /// Initialise a new instance of <see cref="ZipEntryFactory"/> using the specified <see cref="DateTime"/>
 /// </summary>
 /// <param name="time">The time to set all <see cref="ZipEntry.DateTime"/> values to.</param>
 public ZipEntryFactory(DateTime time)
 {
     timeSetting_ = TimeSetting.Fixed;
     FixedDateTime = time;
     nameTransform_ = new ZipNameTransform();
 }
예제 #40
0
 public ZipEntryFactory()
 {
     fixedDateTime_ = DateTime.Now;
     getAttributes_ = -1;
     nameTransform_ = new ZipNameTransform();
 }