Exemplo n.º 1
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, string fileFilter, string directoryFilter)
        {
            continueRunning_      = true;
            extractNameTransform_ = new WindowsNameTransform(targetDirectory);

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

            using (zipFile_ = new ZipFile(zipFileName))
            {
                var enumerator = zipFile_.GetEnumerator();
                while (continueRunning_ && enumerator.MoveNext())
                {
                    var 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);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
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, string fileFilter, string directoryFilter)
    {
      continueRunning_ = true;
      extractNameTransform_ = new WindowsNameTransform(targetDirectory);

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

      using (zipFile_ = new ZipFile(zipFileName))
      {
        var enumerator = zipFile_.GetEnumerator();
        while (continueRunning_ && enumerator.MoveNext())
        {
          var 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);
            }
          }
        }
      }
    }