【Android】数据存储,sqlite使用注意事项

获得公共路径下的文件夹目录:

public class GetDir {
    // 获取Excel文件夹
    public static String getDir(String pathname) {
        // SD卡指定文件夹
        String sdcardPath = Environment.getExternalStorageDirectory().toString();
        File dir = new File(sdcardPath + File.separator + pathname /*+ File.separator + "Files"*/);

        if (dir.exists()) {
            return dir.toString();

        } else {
            dir.mkdirs();
            Log.e("BAG", "保存路径不存在,");
            return dir.toString();
        }
    }
}

构建数据库:

void init_db(){
        String pathname = GetDir.getDir(Constant_11.folder); // 这个路径,卸载app也无法清除文件,必须手动清除,才能重新构建数据库 /storage/emulated/0/android.system.data    Constant_11.folder:android.system.data
        File file = new File(pathname,Constant_11.file); //Constant_11.file: data_global.db
        try{
            if(!file.exists()){
                file.createNewFile();
                Uri uri = Uri.fromFile(file);
                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
                this.sendBroadcast(intent);
            }
        } catch (IOException e) {
            Log.v("main", "failed1");
            e.printStackTrace();
        }
        try {
            Constant_11.dbHelper = new SQLiteHelper(this, pathname+"/"+Constant_11.file, null, Constant_11.DB_VERSION);
            Constant_11.db = Constant_11.dbHelper.getWritableDatabase();    // 调用SQLiteHelper.OnCreate()
            Log.v("main", "new db");
        } catch (IllegalArgumentException e) {
            Log.v("main", "failed2");
            e.printStackTrace();
            ++Constant_11.DB_VERSION;
            Constant_11.dbHelper.onUpgrade(Constant_11.db, --Constant_11.DB_VERSION, Constant_11.DB_VERSION);
        }
    }

其中:
Constant_11.folderandroid.system.data
Constant_11.filedata_global.db

以上是将数据库文件存放在:/storage/emulated/0/android.system.data/下。

这个路径,卸载app也无法清除文件,必须手动清除,才能重新构建数据库 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值