CatVodSpider/app/src/main/java/com/github/catvod/utils/Path.java

103 lines
2.7 KiB
Java

package com.github.catvod.utils;
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Path {
private static File mkdir(File file) {
if (!file.exists()) file.mkdirs();
return file;
}
public static File download() {
return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
}
public static File root() {
return Environment.getExternalStorageDirectory();
}
public static File tv() {
return mkdir(new File(root() + File.separator + "TV"));
}
public static File tv(String name) {
if (!name.startsWith(".")) name = "." + name;
return new File(tv(), name);
}
public static String read(File file) {
try {
return read(new FileInputStream(file));
} catch (Exception e) {
return "";
}
}
public static String read(InputStream is) {
try {
byte[] data = new byte[is.available()];
is.read(data);
is.close();
return new String(data, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
public static File write(File file, String data) {
return write(file, data.getBytes());
}
public static File write(File file, byte[] data) {
try {
FileOutputStream fos = new FileOutputStream(create(file));
fos.write(data);
fos.flush();
fos.close();
return file;
} catch (Exception ignored) {
return file;
}
}
public static void copy(InputStream in, File out) {
try {
int read;
byte[] buffer = new byte[8192];
FileOutputStream fos = new FileOutputStream(create(out));
while ((read = in.read(buffer)) != -1) fos.write(buffer, 0, read);
fos.close();
in.close();
} catch (Exception ignored) {
}
}
public static List<File> list(File dir) {
File[] files = dir.listFiles();
return files == null ? Collections.emptyList() : Arrays.asList(files);
}
public static File create(File file) throws Exception {
try {
if (!file.canWrite()) file.setWritable(true);
if (!file.exists()) file.createNewFile();
Shell.exec("chmod 777 " + file);
return file;
} catch (Exception e) {
e.printStackTrace();
return file;
}
}
}