|
|
@ -1,5 +1,7 @@
|
|
|
|
package com.xypower.common;
|
|
|
|
package com.xypower.common;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
|
|
|
|
import android.content.res.AssetManager;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import org.w3c.dom.Text;
|
|
|
|
import org.w3c.dom.Text;
|
|
|
@ -320,4 +322,83 @@ public class FilesUtils {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void copyAssetsDir(Context context, String directory, String destPath) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
AssetManager assetManager = context.getAssets();
|
|
|
|
|
|
|
|
String[] fileList = assetManager.list(directory);
|
|
|
|
|
|
|
|
if (fileList != null && fileList.length > 0) {
|
|
|
|
|
|
|
|
File file = new File(destPath);
|
|
|
|
|
|
|
|
if (!file.exists()) {
|
|
|
|
|
|
|
|
file.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!directory.endsWith(File.separator)) {
|
|
|
|
|
|
|
|
directory += File.separator;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!destPath.endsWith(File.separator)) {
|
|
|
|
|
|
|
|
destPath += File.separator;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (String fileName : fileList) {
|
|
|
|
|
|
|
|
copyAssetsDir(context, directory + fileName, destPath + fileName);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// Try to file
|
|
|
|
|
|
|
|
copyAssetsFile(context, directory, destPath);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// else {//如果是文件
|
|
|
|
|
|
|
|
// InputStream inputStream=context.getAssets().open(filePath);
|
|
|
|
|
|
|
|
// File file=new File(context.getFilesDir().getAbsolutePath()+ File.separator+filePath);
|
|
|
|
|
|
|
|
// Log.i("copyAssets2Phone","file:"+file);
|
|
|
|
|
|
|
|
// if(!file.exists() || file.length()==0) {
|
|
|
|
|
|
|
|
// FileOutputStream fos=new FileOutputStream(file);
|
|
|
|
|
|
|
|
// int len=-1;
|
|
|
|
|
|
|
|
// byte[] buffer=new byte[1024];
|
|
|
|
|
|
|
|
// while ((len=inputStream.read(buffer))!=-1){
|
|
|
|
|
|
|
|
// fos.write(buffer,0,len);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// fos.flush();
|
|
|
|
|
|
|
|
// inputStream.close();
|
|
|
|
|
|
|
|
// fos.close();
|
|
|
|
|
|
|
|
// showToast(context,"模型文件复制完毕");
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// showToast(context,"模型文件已存在,无需复制");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void copyAssetsFile(Context context, String fileName, String destPath) {
|
|
|
|
|
|
|
|
InputStream inputStream = null;
|
|
|
|
|
|
|
|
FileOutputStream fos = null;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
inputStream = context.getAssets().open(fileName);
|
|
|
|
|
|
|
|
//getFilesDir() 获得当前APP的安装路径 /data/data/包名/files 目录
|
|
|
|
|
|
|
|
File file = new File(destPath);
|
|
|
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
|
|
|
file.delete();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fos = new FileOutputStream(file);
|
|
|
|
|
|
|
|
int len = -1;
|
|
|
|
|
|
|
|
byte[] buffer = new byte[1024];
|
|
|
|
|
|
|
|
while ((len = inputStream.read(buffer)) != -1) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
fos.write(buffer, 0, len);
|
|
|
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fos.flush();
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
FilesUtils.closeFriendly(inputStream);
|
|
|
|
|
|
|
|
FilesUtils.closeFriendly(fos);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|