SharpLibZip: Add file without path

前端 未结 3 1061
时光说笑
时光说笑 2021-02-19 02:57

I\'m using the following code, using the SharpZipLib library, to add files to a .zip file, but each file is being stored with its full path. I need to only store the file, in t

3条回答
  •  失恋的感觉
    2021-02-19 03:28

    The MSDN entry for Directory.GetFiles() states that The returned file names are appended to the supplied path parameter. (http://msdn.microsoft.com/en-us/library/07wt70x2.aspx), so the strings you are passing to zipFile.Add() contain the path.

    According to the SharpZipLib documentation, there is an overload of the Add method,

    public void Add(string fileName, string entryName) 
    Parameters:
      fileName(String) The name of the file to add.
      entryName (String) The name to use for the ZipEntry on the Zip file created.
    

    Try this approach:

    string[] files = Directory.GetFiles(folderPath);
    using (ZipFile zipFile = ZipFile.Create(zipFilePath))
    {
         zipFile.BeginUpdate();
         foreach (string file in files)
         {
              zipFile.Add(file, Path.GetFileName(file));
         }
         zipFile.CommitUpdate();
    }
    

提交回复
热议问题