Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/FileUtils.java

45 lines
1.6 KiB
Java
Raw Normal View History

package nodomain.freeyourgadget.gadgetbridge.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
public class FileUtils {
/**
* Copies the the given sourceFile to destFile, overwriting it, in case it exists.
* @param sourceFile
* @param destFile
* @throws IOException
*/
public static void copyFile(File sourceFile, File destFile) throws IOException {
if (!sourceFile.exists()) {
throw new IOException("Does not exist: " + sourceFile.getAbsolutePath());
}
copyFile(new FileInputStream(sourceFile), new FileOutputStream(destFile));
}
private static void copyFile(FileInputStream sourceStream, FileOutputStream destStream) throws IOException {
try (FileChannel fromChannel = sourceStream.getChannel(); FileChannel toChannel = destStream.getChannel()) {
fromChannel.transferTo(0, fromChannel.size(), toChannel);
}
}
/**
* Returns the existing external storage dir.
* @throws IOException when the directory is not available
*/
public static File getExternalFilesDir() throws IOException {
File dir = GBApplication.getContext().getExternalFilesDir(null);
if (dir == null) {
throw new IOException("Unable to access external files dir: null");
}
if (!dir.exists() && !dir.mkdirs()) {
throw new IOException("Unable to access external files dir: does not exist");
}
return dir;
}
}