131 lines
4.7 KiB
Java
131 lines
4.7 KiB
Java
package com.kofax.kmc.ken.engines.service;
|
|
|
|
import android.content.Context;
|
|
import android.database.Cursor;
|
|
import android.net.Uri;
|
|
import android.os.Environment;
|
|
import com.kofax.mobile.sdk._internal.k;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.RandomAccessFile;
|
|
import java.nio.channels.FileChannel;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public class FileService {
|
|
private static final String TAG = "FileService";
|
|
|
|
public static boolean deleteDirectory(File file) {
|
|
StringBuilder sb = new StringBuilder("Deleting directory/file - ");
|
|
sb.append(file.getAbsolutePath());
|
|
k.b("UtilsService.deleteDirectory", sb.toString());
|
|
if (file.isDirectory()) {
|
|
for (String str : file.list()) {
|
|
if (!deleteDirectory(new File(file, str))) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return file.delete();
|
|
}
|
|
|
|
public static String getDocumentPath(Context context) {
|
|
if (Environment.getExternalStorageState().equals("mounted")) {
|
|
File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
|
|
externalStoragePublicDirectory.mkdirs();
|
|
return externalStoragePublicDirectory.getAbsolutePath();
|
|
}
|
|
return context.getFilesDir().getAbsolutePath();
|
|
}
|
|
|
|
public static String getLocalPath(Context context) {
|
|
return context.getFilesDir().getAbsolutePath();
|
|
}
|
|
|
|
public static boolean copyFile(String str, String str2) throws IOException {
|
|
return copyFile(new File(str), new File(str2));
|
|
}
|
|
|
|
public static boolean copyFile(File file, File file2) throws IOException {
|
|
Throwable th;
|
|
FileChannel fileChannel;
|
|
String str = TAG;
|
|
StringBuilder sb = new StringBuilder("Copying from '");
|
|
sb.append(file);
|
|
sb.append("' to '");
|
|
sb.append(file2);
|
|
sb.append("'");
|
|
k.b(str, sb.toString());
|
|
if (file2.exists()) {
|
|
k.b(str, "... destination exists. Deleting.");
|
|
file2.delete();
|
|
file2.createNewFile();
|
|
} else {
|
|
file2.createNewFile();
|
|
}
|
|
FileChannel fileChannel2 = null;
|
|
try {
|
|
FileChannel channel = new RandomAccessFile(file, "rw").getChannel();
|
|
try {
|
|
FileChannel channel2 = new RandomAccessFile(file2, "rw").getChannel();
|
|
try {
|
|
channel.transferTo(0L, channel.size(), channel2);
|
|
if (channel != null) {
|
|
channel.close();
|
|
}
|
|
if (channel2 == null) {
|
|
return false;
|
|
}
|
|
channel2.close();
|
|
return true;
|
|
} catch (Throwable th2) {
|
|
th = th2;
|
|
fileChannel2 = channel2;
|
|
FileChannel fileChannel3 = fileChannel2;
|
|
fileChannel2 = channel;
|
|
fileChannel = fileChannel3;
|
|
if (fileChannel2 != null) {
|
|
fileChannel2.close();
|
|
}
|
|
if (fileChannel != null) {
|
|
fileChannel.close();
|
|
throw th;
|
|
}
|
|
throw th;
|
|
}
|
|
} catch (Throwable th3) {
|
|
th = th3;
|
|
}
|
|
} catch (Throwable th4) {
|
|
th = th4;
|
|
fileChannel = null;
|
|
}
|
|
}
|
|
|
|
public static String getFileNameByUri(Uri uri, Context context) {
|
|
String obj;
|
|
String str = TAG;
|
|
k.b(str, "Getting filename from uri...");
|
|
StringBuilder sb = new StringBuilder("... schema -> ");
|
|
sb.append(uri.getScheme().toString());
|
|
k.b(str, sb.toString());
|
|
if (uri.getScheme().toString().compareTo("content") == 0) {
|
|
Cursor query = context.getContentResolver().query(uri, null, null, null, null);
|
|
if (query.moveToFirst()) {
|
|
int columnIndexOrThrow = query.getColumnIndexOrThrow("_data");
|
|
k.b(str, "... column_index -> ".concat(String.valueOf(columnIndexOrThrow)));
|
|
obj = Uri.parse(query.getString(columnIndexOrThrow)).getPath();
|
|
} else {
|
|
obj = null;
|
|
}
|
|
} else if (uri.getScheme().compareTo("file") == 0) {
|
|
obj = uri.getPath();
|
|
} else {
|
|
StringBuilder sb2 = new StringBuilder("null_");
|
|
sb2.append(uri.getLastPathSegment().toString());
|
|
obj = sb2.toString();
|
|
}
|
|
k.b(str, "... fileName -> ".concat(String.valueOf(obj)));
|
|
return obj;
|
|
}
|
|
}
|