English 中文(简体)
利用ICSharpCode.SharpZipLib.Zip not子
原标题:Using ICSharpCode.SharpZipLib.Zip Subfolder in zip when its not supposed to be

我正在使用图书馆<代码>ICSharpCode.SharpZipLib.Zip;

我的法典如下:

  • The path is root. \ALAWP\THIS\ACORD\
  • I m zipping them to the ZIPDirectory

但是,如果档案没有名称为acord_combined.tx,而是名称为ACORDacord_combined.txt

我做了什么错误?

public void CleanRoot()
{
    DirectoryInfo RootDi = new DirectoryInfo(FilePrep.RootDirectory);
    string ZipDirectory = FilePrep.RootDirectory + "\processed\AceKey"+ DateTime.Now.ToString("yyyyMMdd_H;mm;ss") +".zip";

    ZipOutputStream NewZipOutput = new ZipOutputStream(File.Create(ZipDirectory));

    foreach (FileInfo fi in RootDi.GetFiles("acord*.*"))
    {
        Compress(ref NewZipOutput, fi);
        //MoveFile(fi.FullName,ZipDirectory);
    }

    NewZipOutput.Finish();
    NewZipOutput.Close();
}

public void Compress(ref ZipOutputStream ZipFolder, FileInfo fi)
{
    try
    {
       FileStream fsFileToBeZipped = fi.OpenRead();

       ZipEntry entry = new ZipEntry(fi.FullName);
       ZipFolder.PutNextEntry(entry);
       int size = 2048;
       byte[] buffer = new byte[size];

       while (true)
       {
          size = fsFileToBeZipped.Read(buffer, 0, buffer.Length);

          if (size > 0)
             ZipFolder.Write(buffer, 0, size);
          else
             break;
       }   //end while ( true )

       fsFileToBeZipped.Close();

       //prepare and delete file
       fi.Attributes = FileAttributes.Normal;
       //fi.Delete();
   }   //end try
   catch (Exception e)
   {
        Console.WriteLine("Error zipping File.  Error - " + e.Message);
   }   //end catch
}
最佳回答

你的问题是正确的。

new ZipEntry(fi.FullName);

鸡肉的论据是烟 file卷宗中的道路,而不是压缩数据的全部途径。 通常,诸如7zip和SharpZip等冲锋式图书馆暴露了创造“入场路”的途径,但实际给Zp的数据则从完全的轨道上来。

或许是你想要的

 new ZipEntry(Path.GetFileName(fi.fullName))
问题回答

暂无回答




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签