我想在Xamarin Forms跨平台中创建一个Zip文件。
我为每个平台使用自定义方法,包括iOS和Android。
在iOS上,我使用ZipArchive库实现了这个目标,但是我没有找到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();
}