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

C# 将文件复制到目录后无法解压缩,c#,xamarin,C#,Xamarin,他,伙计们 我的Xamarin表单应用程序有问题。在我的Android项目中有一个嵌入式资源(Sqlite Database.db3),它是压缩的,因为它的大小(解压缩100MB,压缩23MB)。在应用程序启动时,我花了一整天的时间将其从资源文件夹复制到设备内部文件夹,然后在同一文件夹中解压。只要在调试模式下编译,所有这些都可以完美工作。如果我试图在发布模式下编译,或者想在手机上使用.apk,应用程序就会崩溃。 我不知道它出了什么问题。我真的希望你能帮我解决这个问题。 也许您有另一种解决方案,比

他,伙计们

我的Xamarin表单应用程序有问题。在我的Android项目中有一个嵌入式资源(Sqlite Database.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);
                        }
                    }

catch(IOException){continue;}
您正在默默地丢弃任何错误,并想知道为什么它不起作用?别这样!你查过了吗?通常当应用程序崩溃时会显示错误。你说的应用程序崩溃是什么意思?尝试捕获异常并将其记录在某个位置。应用程序崩溃意味着:它停止,应用程序消失。第一个异常(IOException)抛出{System.IO.IOException:System.IO.File.SetLastWriteTime(System.String path,System.DateTime lastWriteTime)处的无效参数[0x00029]在/Users/builder/data/lanes/4009/f3074d2c/source/mono/mcs/class/corlib/System.IO/File.cs:487 at System.IO.Compression.ZipFileExtensions.ExtractToFile(System.IO.Compression.ZipArchiveEntry source,System.String destinationFileName,System.Boolean overwrite)[0x0006b]中,但它继续并在continue语句之后执行它应该执行的操作