将文件复制到目录后无法解压缩文件

时间:2017-07-06 14:27:54

标签: c# xamarin

他们,

我的Xamarin Forms应用有问题。我的Android项目中有一个嵌入式资源(Sqlite数据库.db3),由于其大小(解压缩100MB,压缩23MB)而被压缩。我尝试了一整天将应用程序启动时从资源文件夹复制到设备内部文件夹,然后将其解压缩到同一文件夹中。只要它在调试模式下编译,它们都可以完美地工作。如果我尝试在发布模式下编译或想在我的手机上使用.apk应用程序崩溃。 我不知道它有什么问题。我真的希望你能帮助我解决这个问题。 也许你有另一个解决方案,比如直接从资源文件夹中解压缩数据库

var assembly = GetType().GetTypeInfo().Assembly;
var qbankDbResource = assembly.GetManifestResourceNames().FirstOrDefault(name => name.EndsWith(zipName));
using (var qbankDbStream = assembly.GetManifestResourceStream(qbankDbResource))
using (var fStream = new FileStream(zipPath, FileMode.Create, FileAccess.Write))
{
   qbankDbStream.CopyTo(fStream);
}               
if (File.Exists(zipPath))
                    {
                        using (ZipArchive archive = ZipFile.OpenRead(zipPath))
                        {
                            foreach (ZipArchiveEntry entry in archive.Entries)
                            {
                                try
                                {
                                    entry.ExtractToFile(Path.Combine(Path.GetDirectoryName(zipPath), entry.FullName));
                                }
                                catch (IOException)
                                {
                                    continue;
                                }
                            }
                        }
                        if (File.Exists(dbPath))
                        {
                            File.Delete(zipPath);
                        }
                    }

0 个答案:

没有答案