public boolean copyFile(String fromFilePath, String toFilePath) {
if (TextUtils.isEmpty(fromFilePath) || TextUtils.isEmpty(toFilePath)) {
Logger.Companion.info("[copyFile] fromFilePath or toFilePath path null ");
return false;
}
File fromFile = new File(fromFilePath);
if (!fromFile.exists()) {
Logger.Companion.info("[copyFile] fromFilePath !fromFile.exists()");
return false;
}
if (!fromFile.canRead()) {
Logger.Companion.info("[copyFile] fromFilePath !fromFile.canRead()");
return false;
}
File toFile = new File(toFilePath);
if (!toFile.exists()) {
deleteFiles(toFile.getPath());
}
if (!toFile.getParentFile().exists()) {
toFile.getParentFile().mkdirs();
}
try {
InputStream inStream = new FileInputStream(fromFile);
OutputStream outStream = new FileOutputStream(toFile);
byte[] bytes = new byte[1024];
int i = 0;
while ((i = inStream.read(bytes)) > 0) {
outStream.write(bytes, 0, i);
}
inStream.close();
outStream.close();
} catch (Exception e) {
Logger.Companion.error("[copyFile] error:", e);
return false;
}
Logger.Companion.info("[copyFile] success");
return true;
}
public boolean deleteFiles(String filePath) {
if (TextUtils.isEmpty(filePath)) {
Logger.Companion.info("[copyFile] deleteFiles filePath == null");
return false;
}
File file = new File(filePath);
if (!file.exists()) {
Logger.Companion.info("[copyFile] deleteFiles filePath !file.exists()");
return false;
}
if (file.isFile()) {
return file.delete();
} else
if (file.isDirectory()) {
File[] childFiles = file.listFiles();
if (childFiles == null || childFiles.length == 0) {
return file.delete();
}
boolean reslut = true;
for (File item : file.listFiles()) {
reslut = reslut && item.delete();
}
return reslut && file.delete();
}
return false;
}