package codeine.utils; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.attribute.PosixFilePermission; import java.util.Arrays; import java.util.Collections; import java.util.List; import codeine.utils.exceptions.FileReadWriteException; import com.google.common.collect.Lists; import com.google.common.collect.Sets; public class FilesUtils { public static void mkdirs(String path) { new File(path).mkdirs(); } public static List<String> getFilesInDir(String dir) { List<String> $ = Lists.newArrayList(); File folder = new File(dir); File[] listOfFiles = folder.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return !name.startsWith("."); } }); if (null == listOfFiles) { return Lists.newArrayList(); } for (File file : listOfFiles) { $.add(file.getName()); } return $; } public static boolean exists(String file) { return new File(file).exists(); } public static List<File> listFiles(String dir) { File folder = new File(dir); File[] listFiles = folder.listFiles(); if (null == listFiles){ return Collections.emptyList(); } return Arrays.asList(listFiles); } public static void createNewFile(File file) { try { file.createNewFile(); } catch (IOException e) { throw new FileReadWriteException(file.getAbsolutePath(), e); } } public static void createNewFile(String file) { createNewFile(new File(file)); } public static void delete(String fileName) { if (fileName == null) { return; } File file = new File(fileName); if (file.isFile()) { if (file.exists()) { file.delete(); } } else { File[] files=file.listFiles(); if (files == null){ return; } for (File file2 : files) { delete(file2.getAbsolutePath()); } file.delete(); } } public static void setPermissions(String fileName, PosixFilePermission... permission) { try { Files.setPosixFilePermissions(FileSystems.getDefault().getPath(fileName), Sets.newHashSet(permission)); } catch (IOException e) { throw new FileReadWriteException(fileName, e); } } }