Android Marshmallow FileUtils.copyFile() создает файлы размером 0,00 B в заданном месте, в то время как на Lollipop работает нормально
Я копирую файл изображения в нужное место на внутреннем хранилище методом
FileUtils.copyFile(File srcFile, File destFile, boolean preserveFileDate)
под пакетом org.apache.commons.io.FileUtils
,
Он отлично работает на Lollipop OS и копирует файл плавно, но на Marshmallow OS он не работает и создает файл размером 0,00 B.
Устройство: Lenovo A7000 Lollipop, обновленный с помощью Marshmallow 6.0.
FileManager.copyFile(fileName, cameraUtil.getPath(), "abc"))
public static synchronized boolean copyFile(String fileName, String fromPath, String status){
File fromFile = new File(fromPath);
String toPath = createToPath(status);
if(!TextUtils.isEmpty(toPath)) {
if(fileName.contains(" ")){
fileName.replace(" ","_");
}
File toFile = new File(toPath+"/"+fileName);
try {
FileUtils.copyFile(fromFile, toFile);
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}else{
return false;
}
}
public static String createToPath(String status){
File aFile = new File(Environment.getExternalStorageDirectory(), FileConstants.ROOT_FOLDERNAME+"/"status);
if(performMkDir(aFile)){
return Environment.getExternalStorageDirectory().getAbsolutePath()+FileConstants.ROOT_FOLDERNAME+"/"+status;
}else{
return null;
}
}
private static boolean performMkDir(File file){
if(!file.exists()){
if(!file.mkdirs()){
Log.e(TAG, "could not create root folder.");
return false;
} else{
Log.i(TAG, "created root folder.");
return true;
}
}else{
Log.i(TAG, "root folder already exists.");
return true;
}
}