我想在Xamarin Forms Cross Platform中创建一个zip文件。 我为每个平台,iOS和Android使用自定义的方式。 在iOS中使用库ZipArchive,但我没有找到Android的替代方案。在Xamarin Forms中创建Zip文件Android
所以我尝试做它本地(创建只有一个文件的zip),但zip文件被创建为空。
public void Compress(string path, string filename, string zipname)
{
var personalpath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string folder = Path.Combine(personalpath, path);
string zippath = Path.Combine(folder, zipname);
string filepath = Path.Combine(folder, filename);
System.IO.FileStream fos = new System.IO.FileStream(zippath, FileMode.OpenOrCreate);
Java.Util.Zip.ZipOutputStream zos = new Java.Util.Zip.ZipOutputStream(fos);
ZipEntry entry = new ZipEntry(filename.Substring(filename.LastIndexOf("/") + 1));
byte[] fileContents = File.ReadAllBytes(filepath);
zos.Write(fileContents);
zos.CloseEntry();
}
应该丢弃fos和zos。不知道这是否能解决你的问题。 –
你是对的!需要关闭ZOS并部署FOS – jpintor
我已将您的评论和解决方案移至社区wiki。 –