2

我正在尝试保存一个 XAP 文件,女巫基本上就像一个 zip 文件,我可以存档并保存它,但它会添加到许多文件夹中?

我正在使用 Ionic.Zip DLL 来存档我的 XAP 文件。

该文件保存到我的路径,但是当我打开它时,它有文件夹 users,然后在那里有文件夹 Shaun,在那个文件夹中有一个文件夹 Documents,在 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");
}
4

2 回答 2

1
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”)并忽略归档文件的文件夹层次结构。

于 2012-10-01T09:09:33.287 回答
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>
于 2012-10-01T09:10:31.993 回答