安卓系统微信文件夹如何把系统目录下的data/data文件夹里面的数据转移到SD卡?(不是复制移动)

初学android,达人忽略,欢迎扔石头.
android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件
如果使用SD卡,需要在AndroidManifest.xml中设置权限
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"&&/uses-permission&&uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"&&/uses-permission&
3 &import java.io.F
4 &import java.io.FileOutputS
5 &import java.io.IOE
6 &import java.io.InputS
7 &import java.io.OutputS
9 &import android.content.C 10 &import android.database.sqlite.SQLiteD 11 &import android.database.sqlite.SQLiteDatabase.CursorF 12 import android.database.sqlite.SQLiteE 13 import android.database.sqlite.SQLiteOpenH 14
* @author Joshua 17
* 用法: 18
* DBHelper dbHelper = new DBHelper(this); 19
* dbHelper.createDataBase(); 20
* SQLiteDatabase db = dbHelper.getWritableDatabase(); 21
* Cursor cursor = db.query() 22
* db.execSQL(sqlString); 23
* 注意:execSQL不支持带;的多条SQL语句,只能一条一条的执行,晕了很久才明白 24
* 见execSQL的源码注释 (Multiple stats are not supported.) 25
* 将把assets下的数据库文件直接复制到DB_PATH,但数据库文件大小限制在1M以下 26
* 如果有超过1M的大文件,则需要先分割为N个小文件,然后使用copyBigDatabase()替换copyDatabase() 27
*/ 28 public class DBHelper extends SQLiteOpenHelper { 29
//用户数据库文件的版本 30
private static final int DB_VERSION
//数据库文件目标存放路径为系统默认位置,cn.arthur.examples 是你的包名 32
private static String DB_PATH
= "/data/data/cn.arthur.examples/databases/"; 33 /* 34
//如果你想把数据库文件存放在SD卡的话 35
private static String DB_PATH
= android.os.Environment.getExternalStorageDirectory().getAbsolutePath() 36
+ "/arthurcn/drivertest/packfiles/"; 37 */ 38
private static String DB_NAME
= "hello.db"; 39
private static String ASSETS_NAME
= "hello.db"; 40
private SQLiteDatabase myDataBase
= null; 42
private final Context myC 43
* 如果数据库文件较大,使用FileSplit分割为小于1M的小文件 46
* 此例中分割为 hello.db.101
hello.db.102
hello.db.103 47
//第一个文件名后缀 49
private static final int ASSETS_SUFFIX_BEGIN
//最后一个文件名后缀 51
private static final int ASSETS_SUFFIX_END
* 在SQLiteOpenHelper的子类当中,必须有该构造函数 55
* @param context
上下文对象 56
* @param name
数据库名称 57
* @param factory
一般都是null 58
* @param version
当前数据库的版本,值必须是整数并且是递增的状态 59
public DBHelper(Context context, String name, CursorFactory factory, int version) { 61
//必须通过super调用父类当中的构造函数 62
super(context, name, null, version); 63
this.myContext = 64
public DBHelper(Context context, String name, int version){ 67
this(context,name,null,version); 68
public DBHelper(Context context, String name){ 71
this(context,name,DB_VERSION); 72
public DBHelper (Context context) { 75
this(context, DB_PATH + DB_NAME); 76
public void createDataBase() throws IOException{ 79
boolean dbExist = checkDataBase(); 80
if(dbExist){ 81
//数据库已存在,do nothing. 82
//创建数据库 84
File dir = new File(DB_PATH); 86
if(!dir.exists()){ 87
dir.mkdirs(); 88
File dbf = new File(DB_PATH + DB_NAME); 90
if(dbf.exists()){ 91
dbf.delete(); 92
SQLiteDatabase.openOrCreateDatabase(dbf, null); 94
// 复制asseets中的db文件到DB_PATH下 95
copyDataBase(); 96
} catch (IOException e) { 97
throw new Error("数据库创建失败"); 98
//检查数据库是否有效103
private boolean checkDataBase(){104
SQLiteDatabase checkDB = null;105
String myPath = DB_PATH + DB_NAME;106
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);108
}catch(SQLiteException e){109
//database does't exist yet.110
if(checkDB != null){112
checkDB.close();113
return checkDB != null ? true : false;115
* Copies your database from your local assets-folder to the just created empty database in the119
* system folder, from where it can be accessed and handled.120
* This is done by transfering bytestream.121
private void copyDataBase() throws IOException{123
//Open your local db as the input stream124
InputStream myInput = myContext.getAssets().open(ASSETS_NAME);125
// Path to the just created empty db126
String outFileName = DB_PATH + DB_NAME;127
//Open the empty db as the output stream128
OutputStream myOutput = new FileOutputStream(outFileName);129
//transfer bytes from the inputfile to the outputfile130
byte[] buffer = new byte[1024];131
while ((length = myInput.read(buffer))&0){133
myOutput.write(buffer, 0, length);134
//Close the streams136
myOutput.flush();137
myOutput.close();138
myInput.close();139
//复制assets下的大数据库文件时用这个142
private void copyBigDataBase() throws IOException{143
InputStream myI144
String outFileName = DB_PATH + DB_NAME;145
OutputStream myOutput = new FileOutputStream(outFileName);146
for (int i = ASSETS_SUFFIX_BEGIN; i & ASSETS_SUFFIX_END+1; i++) {147
myInput = myContext.getAssets().open(ASSETS_NAME + "." + i);148
byte[] buffer = new byte[1024];149
while ((length = myInput.read(buffer))&0){151
myOutput.write(buffer, 0, length);152
myOutput.flush();154
myInput.close();155
myOutput.close();157
@Override160
public synchronized void close() {161
if(myDataBase != null){162
myDataBase.close();163
super.close();165
* 该函数是在第一次创建的时候执行,169
* 实际上是第一次得到SQLiteDatabase对象的时候才会调用这个方法170
@Override172
public void onCreate(SQLiteDatabase db) {173
* 数据库表结构有变化时采用177
@Override179
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {180
}181 182 }183
阅读(...) 评论()您现在的位置:&&>>&&>>&&>>&正文
安卓智能手机如何将数据包放到外置sd卡里
  日,相信很多入手安卓手机的朋友都会遇到这样的一个问题,内置sd卡不够用,但是大量的文件(这里主要指的是各位玩家的数据包)又无法移动到外置存储卡内,那么往往就会导致大型游戏装不了几个就会提示sd卡空间不足。这对于购买了32G甚至64G的朋友们来说可能是小case毫无压力,不过购买的是16G乃至8G版的朋友可能有时候就有点蛋疼了。为了安装一个新的3D大作到底是卸载掉哪个游戏比较合适呢?这个舍不得那个也舍不得,好纠结!不要担心,小编今天就来为大家介绍一下如何将这些动辄1-2G的SD卡杀手数据包移动到外置sd卡中。以下是操作步骤,各位请按照教程来仔细操作,此次教程以三星I9300为例。
&  首先推荐一款神级软件也是我们今天这篇教程的核心,(目录绑定)
  1、在外置SD卡 随便建一个目录 比如/mnt/exdsdcard/Doid/android/  2、安装DirectoryBind(目录绑定),打开这个软件会出现如下界面
安卓智能手机如何将数据包放到外置sd卡内部
  3、按菜单键 添加新项目   (由目标目录传输文件到数据目录:意思是挂载完成直接帮你把数据转移到外置SD卡,不用自己剪切)
安卓智能手机如何将数据包放到外置sd卡内部
  4、新项目里有两个选择的路径,  上面的是你外置SD的目录,(选择我们创建的文件夹)  下面的是你原来文件应该的地方。  (比如目录/android/data/和/gameloft/games/,这个大家应该知道吧。)  5、(关键的一步来了)下面我们要做的就是把手机内存里的/android/data/下的游戏数据包移动到SD卡上。按住上面的目录就会出现选择文件夹的界面。一直向上知道不能退了为止,找到/mnt/文件夹,这里面的extSdCard是我们的外置SD卡目录。进入里面找到我们开始建立的文件夹/mnt/extSdCard/Doid/android/ 点下面中间的按钮 选择
安卓智能手机如何将数据包放到外置sd卡内部安卓智能手机如何将数据包放到外置sd卡内部安卓智能手机如何将数据包放到外置sd卡内部
  6、下面的选择目录选择我们手机内存里
安卓智能手机如何将数据包放到外置sd卡内部
  /sdcard/android/点下面中间的选择按钮。目录已经挂载完成啦!现在你就可以把手机里原来“sdcard/android/”文件夹都复制到外置SD卡你第一步创建的/mnt/extsdcard/lidroid/android/文件夹里了。或者“添加”时勾由目标目录传输文件到数据目录。
安卓智能手机如何将数据包放到外置sd卡内部
  游戏测试成功
安卓智能手机如何将数据包放到外置sd卡内部
  必须注意 以下几点:  一:按菜单键-喜爱设置-勾选启动时开启绑定  (优化软件里 必须允许 目录绑定 开机自启动)  (内存清理软件中 必须把 目录绑定加入白名单)
安卓智能手机如何将数据包放到外置sd卡内部
  二:按菜单键-更多-备份数据库  (做好备份,以防万一)
安卓智能手机如何将数据包放到外置sd卡内部
  三:按菜单键-绑定已检查,这是完美使用状态的截图
安卓智能手机如何将数据包放到外置sd卡内部
  注意:使用拇指玩等安装大型游戏时需要暂时关闭挂载,不然安装不了,且安装完成后,需把数据包转移到挂载目录
  这款软件的主要作用就是将软件固定认为的数据包目录改变为外置sd卡的目录,这样的话手机内置sd卡的数据包就可以完全移动到外置卡上,这样就起到了扩充手机自身可用容量的目的。
更多精彩尽在
(编辑: mayunpeng
您可以使用“← | →”键快速翻页,或者进入模式!
事件进展:
相关文章:
{tgbus_tag:include file="/file/tuijian.html?v=5" charset="gb2312" /}
热门推荐本周本月
没有推荐文章
没有推荐文章
游戏软件游戏软件
&&(1868267)&&(1529321)&&(120405)&&(68358)&&(58726)&&(56772)&&(41997)&&(30841)&&(26030)&&(20289)
&&(13285)&&(2400)&&(2070)&&(1151)&&(1050)&&(1030)&&(760)&&(650)

我要回帖

更多关于 安卓录音在哪个文件夹 的文章

 

随机推荐