资产文件夹中的 android 数据库

发布于 2024-11-19 04:33:34 字数 306 浏览 7 评论 0原文

有没有办法直接从资产文件夹访问 sqlite 数据库,或者总是需要先将此数据库复制到应用程序数据库文件夹中的设备数据目录?

(示例-Environment.getDataDirectory()+"/data/com.example.myapp/databases/myDb.db")

我问这个问题是因为我有一个非常大的数据库(大约11MB)并且必须与应用程序一起提供。将数据库复制到数据目录后,应用程序将占用两倍的空间。我想避免这种情况。

另外,安装应用程序后是否可以删除 asset 文件夹中的内容?这将有助于节省一些空间。

谢谢

Is there a way to directly access the sqlite database from the assets folder, or is it always necessary to first copy this db to the device data directory, in the app's database folder?

(Example - Environment.getDataDirectory()+"/data/com.example.myapp/databases/myDb.db")

I ask because I have a db that is quite large (about 11MB) and has to be shipped with the app. After the database has been copied to the data directory, the app will take twice the space. I want to avoid this.

Also, is it possible to delete the contents of the asset folder after the app has been installed? This would help save some space.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉城已无爱 2024-11-26 04:33:34

资产文件夹是编译时文件夹。如果不复制到你的linux中就无法访问

assets folder is a compile time folder. You cannot access without copying in your linux

断舍离 2024-11-26 04:33:34

是的,您可以从资产文件夹中删除数据库中的文件:
您可以使用 "android.resource://"+getPackageName() + "/" 访问该文件夹,然后

File f=new File(_pathToAssestFolder,databasename);
        if(f.exists())
        {f.delete();
        }

onCreate() 的最后一行使用 but > 功能;

尝试一下

yes you can delete the files from the database from the assets folder :
you can use "android.resource://"+getPackageName() + "/" to access the folder and then use

File f=new File(_pathToAssestFolder,databasename);
        if(f.exists())
        {f.delete();
        }

but do it in the last line of onCreate() function;

try it

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文