归档zip文件并将其保存到所选的位置,没有多余的文件路径?(Archiving a zip file

2019-09-23 06:50发布

我想保存XAP文件女巫基本上像一个zip文件,我可以归档并保存它,但它增加了许多文件夹?

我使用Ionic.Zip DLL来封存XAP文件。

该文件保存到我的道路,但是当我打开它,它有文件夹的用户,然后在那里它具有文件夹中的文件夹中的文件,在该文件夹FormValue然后在那边有有我的3个文件的文件夹肖恩,在这我拉上。

我需要的XAP文件只包含3个文件,我拉上,而不是所有的额外文件夹内。

using (ZipFile zip = new ZipFile())
{
// add this map to zip
zip.AddFile("C://Users//Shaun//Documents//FormValue//" + property_details_locality_map); 
zip.AddFile("C://Users//Shaun//Documents//FormValue//data.xml");
zip.AddFile("C://Users//Shaun//Documents//FormValue//dvform.dvform"); 
zip.Save("C://Users//Shaun//Documents//FormValue//NewValuation.xap");
}

Answer 1:

使用zip.AddFile(string fileName, string directoryPathInArchive)的过载,并指定空字符串""第二个参数:

zip.AddFile("C://Users//Shaun//Documents//FormValue//" + property_details_locality_map, ""); 
zip.AddFile("C://Users//Shaun//Documents//FormValue//data.xml", "");
zip.AddFile("C://Users//Shaun//Documents//FormValue//dvform.dvform", ""); 

从文档:

/// <param name="directoryPathInArchive">
///   Specifies a directory path to use to override any path in the fileName.
///   This path may, or may not, correspond to a real directory in the current
///   filesystem.  If the files within the zip are later extracted, this is the
///   path used for the extracted file.  Passing <c>null</c> (<c>Nothing</c> in
///   VB) will use the path on the fileName, if any.  Passing the empty string
///   ("") will insert the item at the root path within the archive.
/// </param>


Answer 2:

List<string> filesToBeAdded = new List<string>();
filesToBeAdded.Add("C://Users//Shaun//Documents//FormValue//" + property_details_locality_map);
filesToBeAdded.Add("C://Users//Shaun//Documents//FormValue//data.xml");
filesToBeAdded.Add("C://Users//Shaun//Documents//FormValue//dvform.dvform");
zip.AddFiles(filesToBeAdded, false, "ShaunXAP"); // you could pass empty string here instead of "ShaunXAP" 
zip.Save("C://Users//Shaun//Documents//FormValue//NewValuation.xap");

这会将所有文件合并成一个共同的文件夹(在这种情况下,“ShaunXAP”),并忽略那些archieved文件的文件夹层次结构。



文章来源: Archiving a zip file and save it to a location of choice, with no extra file paths?
标签: c# zip