예제 #1
0
            public ZipEntry MakeFileEntry(string fileName)
            {
                var entry = _wrappedEntryFactory.MakeFileEntry(fileName);

                entry.CompressionMethod = CompressionMethod.Stored;
                return(entry);
            }
예제 #2
0
 private void ProcessFile(object sender, ScanEventArgs e)
 {
     if ((_events != null) && (_events.ProcessFile != null))
     {
         _events.ProcessFile(sender, e);
     }
     if (e.ContinueRunning)
     {
         try
         {
             using (FileStream stream = File.Open(e.Name, FileMode.Open, FileAccess.Read, FileShare.Read))
             {
                 ZipEntry entry = _entryFactory.MakeFileEntry(e.Name);
                 _outputStream.PutNextEntry(entry);
                 AddFileContents(e.Name, stream);
             }
         }
         catch (Exception exception)
         {
             if (_events == null)
             {
                 _continueRunning = false;
                 throw;
             }
             _continueRunning = _events.OnFileFailure(e.Name, exception);
         }
     }
 }
예제 #3
0
 private void ProcessFile(object sender, ScanEventArgs e)
 {
     if (events_ != null && events_.ProcessFile != null)
     {
         events_.ProcessFile(sender, e);
     }
     if (!e.ContinueRunning)
     {
         return;
     }
     try
     {
         FileStream val = File.Open(e.Name, (FileMode)3, (FileAccess)1, (FileShare)1);
         try
         {
             ZipEntry entry = entryFactory_.MakeFileEntry(e.Name);
             outputStream_.PutNextEntry(entry);
             AddFileContents(e.Name, (Stream)(object)val);
         }
         finally
         {
             ((global::System.IDisposable)val)?.Dispose();
         }
     }
     catch (global::System.Exception e2)
     {
         if (events_ != null)
         {
             continueRunning_ = events_.OnFileFailure(e.Name, e2);
             return;
         }
         continueRunning_ = false;
         throw;
     }
 }
예제 #4
0
 private void ProcessFile(object sender, ScanEventArgs e)
 {
     if (events_ != null && events_.ProcessFile != null)
     {
         events_.ProcessFile(sender, e);
     }
     if (e.ContinueRunning)
     {
         try
         {
             using (FileStream stream = File.Open(e.Name, FileMode.Open, FileAccess.Read, FileShare.Read))
             {
                 ZipEntry entry = entryFactory_.MakeFileEntry(e.Name);
                 outputStream_.PutNextEntry(entry);
                 AddFileContents(e.Name, stream);
             }
         }
         catch (Exception e2)
         {
             if (events_ == null)
             {
                 continueRunning_ = false;
                 throw;
             }
             continueRunning_ = events_.OnFileFailure(e.Name, e2);
         }
     }
 }
예제 #5
0
        void ProcessFile(object sender, ScanEventArgs e)
        {
            if ((events_ != null) && (events_.ProcessFile != null))
            {
                events_.ProcessFile(sender, e);
            }

            if (e.ContinueRunning)
            {
                try {
                    // The open below is equivalent to OpenRead which gaurantees that if opened the
                    // file will not be changed by subsequent openers, but precludes opening in some cases
                    // were it could succeed.
                    using (FileStream stream = File.Open(e.Name, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                        ZipEntry entry = entryFactory_.MakeFileEntry(e.Name);
                        outputStream_.PutNextEntry(entry);
                        AddFileContents(e.Name, stream);
                    }
                }
                catch (Exception ex) {
                    if (events_ != null)
                    {
                        continueRunning_ = events_.OnFileFailure(e.Name, ex);
                    }
                    else
                    {
                        continueRunning_ = false;
                        throw;
                    }
                }
            }
        }
예제 #6
0
 /// <summary>
 /// Create from a file
 /// </summary>
 /// <param name="ef"></param>
 /// <param name="original"></param>
 /// <param name="ztime"></param>
 public ZipFSEntry(IEntryFactory ef, FileSystemInfo original, ZipTime ztime)
 {
     _ze = null;
     _ztime = ztime;
     if (original is FileInfo)
         _ze = ef.MakeFileEntry(original.FullName, true);
     else
     {
         string nobs = Utils.BackslashRemove(original.FullName);
         _ze = ef.MakeDirectoryEntry(nobs, true);
     }
 }
예제 #7
0
 /// <summary>
 /// Create from a file
 /// </summary>
 /// <param name="ef"></param>
 /// <param name="original"></param>
 /// <param name="ztime"></param>
 public ZipFSEntry(IEntryFactory ef, FileSystemInfo original, ZipTime ztime)
 {
     _ze    = null;
     _ztime = ztime;
     if (original is FileInfo)
     {
         _ze = ef.MakeFileEntry(original.FullName, true);
     }
     else
     {
         string nobs = Utils.BackslashRemove(original.FullName);
         _ze = ef.MakeDirectoryEntry(nobs, true);
     }
 }