Ios 在哪里存储SQLite数据库文件?

Ios 在哪里存储SQLite数据库文件?,ios,sqlite,xamarin.ios,Ios,Sqlite,Xamarin.ios,我有一个SQlite数据库文件,其中包含我的应用程序附带的记录。 我只是使用添加到项目中的文件来生成INSERT和UPDATE语句。 在上传到我的测试设备后,我得到了一个例外,文件是只读的。 经过一番研究后,我发现我必须将db文件复制到用户目录以进行插入。这项措施目前有效。但我有一个关于它的观点,我没有通过谷歌得到答案: 我应该将复制过程放在哪里? 我在AppDelegates FinishedLaunching中实现了它,在那里我检查它是否已经存在 我应该把文件复制到哪里? 我现在用的是MyD

我有一个SQlite数据库文件,其中包含我的应用程序附带的记录。 我只是使用添加到项目中的文件来生成INSERT和UPDATE语句。 在上传到我的测试设备后,我得到了一个例外,文件是只读的。 经过一番研究后,我发现我必须将db文件复制到用户目录以进行插入。这项措施目前有效。但我有一个关于它的观点,我没有通过谷歌得到答案:

我应该将复制过程放在哪里? 我在AppDelegates FinishedLaunching中实现了它,在那里我检查它是否已经存在

我应该把文件复制到哪里? 我现在用的是MyDocuments文件夹,可以吗

由于该文件无法加密,其他应用程序是否可以访问该数据库文件

当用户决定从设备中删除应用程序时。数据库文件也会被删除吗

谢谢

我应该将复制过程放在哪里?我在AppDelegates FinishedLaunching中实现了它,在那里我检查它是否已经存在

这真的要看情况而定,但在我看来,完成发射是可以的

我应该把文件复制到哪里?我现在用的是MyDocuments文件夹,可以吗

我不知道你说的MyDocuments文件夹是什么意思。每个应用程序都有一个专用的文档目录。那是你应该复制它的地方

由于该文件无法加密,其他应用程序是否可以访问该数据库文件

不,除非设备被越狱,否则它们是用沙盒装的

当用户决定从设备中删除应用程序时。数据库文件也会被删除吗

是,因为整个文档目录将被删除

我应该将复制过程放在哪里?我在AppDelegates FinishedLaunching中实现了它,在那里我检查它是否已经存在

这真的要看情况而定,但在我看来,完成发射是可以的

我应该把文件复制到哪里?我现在用的是MyDocuments文件夹,可以吗

我不知道你说的MyDocuments文件夹是什么意思。每个应用程序都有一个专用的文档目录。那是你应该复制它的地方

由于该文件无法加密,其他应用程序是否可以访问该数据库文件

不,除非设备被越狱,否则它们是用沙盒装的

当用户决定从设备中删除应用程序时。数据库文件也会被删除吗

是,因为整个文档目录将被删除

我应该将复制过程放在哪里?我在AppDelegations中实现了它

请记住,在iOS看门狗杀死您的应用程序之前大约15秒,您完成FinishedLaunching执行的时间有限

根据数据库的大小、设备的速度和需要处理的其他处理,您可能只考虑检查是否已经存在,应该是快速的,然后如果需要,从另一个线程复制。 我现在用的是MyDocuments文件夹,可以吗

是,使用Environment.GetFolderPath Environment.SpecialFolder.MyDocuments是正确的

@Lightforce answer的其他内容涵盖了其余内容

我应该将复制过程放在哪里?我在AppDelegations中实现了它

请记住,在iOS看门狗杀死您的应用程序之前大约15秒,您完成FinishedLaunching执行的时间有限

根据数据库的大小、设备的速度和需要处理的其他处理,您可能只考虑检查是否已经存在,应该是快速的,然后如果需要,从另一个线程复制。 我现在用的是MyDocuments文件夹,可以吗

是,使用Environment.GetFolderPath Environment.SpecialFolder.MyDocuments是正确的


从@ ListFrand回答中的所有内容都覆盖了其余部分。

BTW。因为这不是单调相关的,请考虑删除这个TAG。BTW。由于这不是单调的关系,请考虑删除这个标签。