您的位置:首页 > 移动开发 > Android开发

android 从存储卡复制文件到apk私有目录

2016-03-03 09:17 351 查看
  String dexPath=null;

    boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

    File file=null;

    String external="";

    System.out.println(external);

    if(sdCardExist){

    dexPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+filename;

   

   

    file=new File(dexPath);

    if(!file.exists()){

    System.out.println("dex file not exist!:"+dexPath);

    return ;

    }else{

    System.out.println(dexPath);

    }

    }    

    if(null==file){

    System.out.println("文件不存在!");

    external = System.getenv("EXTERNAL_STORAGE");

    file=new File(external+"/"+filename);

    }

    String absoultepath=context.getFilesDir().getParentFile().getAbsolutePath()+"/app_"+inDir+"/"+filename;

    System.out.println(absoultepath);

    File sofiledir=context.getDir(inDir, context.MODE_PRIVATE);

    File sofile=null;

    try {

    System.out.println("开始复制文件"+file.getAbsolutePath()+":"+file.length()+"字节");
FileInputStream fi=new FileInputStream(file);

sofile=new File(sofiledir.getAbsolutePath()+"/"+filename);
if(!sofile.exists()){
sofile.createNewFile();
}else{
sofile.delete();
sofile=new File(sofiledir.getAbsolutePath()+"/"+filename);
sofile.createNewFile();
}
FileOutputStream fo=new FileOutputStream(sofile);
byte[] buffer=new byte[1024];
int t=0;
while((t=fi.read(buffer))!=-1){
fo.write(buffer, 0, t);
}
fo.flush();
fo.close();
fi.close();
} catch (Exception e) {
e.printStackTrace();
}

    

    System.out.println("复制后文件大小:"+sofile.getAbsolutePath()+">"+sofile.length());

    if(sofile.length()==file.length()){

    System.out.println("复制成功!"+filename+"文件大小为:"+sofile.length());

    }else{

    System.out.println("复制失败!");

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: