gpt4 book ai didi

android - Environment.getExternalStorageDirectory().getAbsolutePath() 不工作并提供/存储

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:44 26 4
gpt4 key购买 nike

我的代码

myDb = openOrCreateDatabase("/sdcard/FashionGirl/ImagesDB.db", Context.MODE_PRIVATE, null);
myDb = openOrCreateDatabase(dbPath, Context.MODE_PRIVATE, null);

工作完美,但发出警告 不要硬编码“/sdcard/”;使用 Environment.getExternalStorageDirectory().getPath() 代替

所以我试过了,

String dbPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "FashionGirl/ImagesDB.db";
myDb = openOrCreateDatabase(dbPath, Context.MODE_PRIVATE, null);

但奇怪的是,它不起作用,其中 Environment.getExternalStorageDirectory().getAbsolutePath() 具有值 /storage

所以它给出了错误,

12-17 19:32:02.230: E/SqliteDatabaseCpp(15620): sqlite3_open_v2("/storageFashionGirl/ImagesDB.db", &handle, 6, NULL) failed
12-17 19:32:02.230: E/SQLiteDatabase(15620): Failed to open the database. closing it.
12-17 19:32:02.230: E/SQLiteDatabase(15620): android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file
12-17 19:32:02.230: E/SQLiteDatabase(15620): at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
12-17 19:32:02.230: E/SQLiteDatabase(15620): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:983)
12-17 19:32:02.230: E/SQLiteDatabase(15620): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:956)
12-17 19:32:02.230: E/SQLiteDatabase(15620): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:932)

那么为什么Android推荐的东西不能用,我该怎么办?

最佳答案

String dbPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "FashionGirl/ImagesDB.db";
myDb = openOrCreateDatabase(dbPath, Context.MODE_PRIVATE, null);

请不要使用串联来构造文件路径。尝试:

File dbPath = new File(Environment.getExternalStorageDirectory(), "FashionGirl/ImagesDB.db");
myDb = openOrCreateDatabase(dbPath.getAbsolutePath(), Context.MODE_PRIVATE, null);

But strangely, its not working, where Environment.getExternalStorageDirectory().getAbsolutePath() has value /storage

那是因为 /sdcard 已经弃用了将近三年。

关于android - Environment.getExternalStorageDirectory().getAbsolutePath() 不工作并提供/存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13915690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com