首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

android 增多内部flash时容易忘记的一点-数据库操作-删除文件

2012-09-23 
android 增加内部flash时容易忘记的一点-数据库操作-删除文件其他中间层做好后,发现在Gallery中无法删除fl

android 增加内部flash时容易忘记的一点-数据库操作-删除文件

其他中间层做好后,发现在Gallery中无法删除flash(或sdcard)上的文件,原因是以下文件未作修改,改成如下

其中环境变量在init.rc 中定义如下

??? export EXTERNAL_STORAGE /mnt/flash
??? export EXTERNAL_FLASH_STORAGE /mnt/sdcard
??? export EXTERNAL_UDISK_STORAGE /mnt/udisk

?

?

/external/sqlite/android/sqlite3_android.cpp

?

static void delete_file(sqlite3_context * context, int argc, sqlite3_value ** argv)
{
??? if (argc != 1) {
??????? sqlite3_result_int(context, 0);
??????? return;
??? }

??? char const * path = (char const *)sqlite3_value_text(argv[0]);
??? char const * external_storage = getenv("EXTERNAL_STORAGE");
?char const * external_flash_storage = getenv("EXTERNAL_FLASH_STORAGE");
??? if ((path == NULL)||((external_storage == NULL)&&(external_flash_storage == NULL))) {
??????? sqlite3_result_null(context);
??????? return;
??? }

?if((strncmp(external_storage, path, strlen(external_storage)) != 0) \
??&&(strncmp(external_flash_storage, path, strlen(external_flash_storage)) != 0)){
??????? sqlite3_result_null(context); //之前是此处直接返回,所以媒体库上删除了图片记录,但文件并未删除
??????? return;
??? }
??? if (strstr(path, "/../") != NULL) {
??????? sqlite3_result_null(context);
??????? return;
??? }

??? int err = unlink(path);
??? if (err != -1) {
??????? // No error occured, return true
??????? sqlite3_result_int(context, 1);
??? } else {
??????? // An error occured, return false
??????? sqlite3_result_int(context, 0);
??? }
}

热点排行