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("复制失败!");
}