package se.unlogic.standardutils.io; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.IOException; /** * Utility class for handling files and folders * * @author Robert "Unlogic" Olofsson (unlogic@unlogic.se) * */ public class FileUtils { public final static byte[] getRawBytes(File f) throws IOException { FileInputStream fin = new FileInputStream(f); byte[] buffer = new byte[(int) f.length()]; fin.read(buffer); fin.close(); return buffer; } public static String getFileExtension(File file) { return getFileExtension(file.getName()); } public static String getFileExtension(String filename) { int dotIndex = filename.lastIndexOf("."); if (dotIndex == -1 || (dotIndex + 1) == filename.length()) { return null; } else { return filename.substring(dotIndex + 1); } } public static boolean fileExists(String path) { File file = new File(path); return file.exists(); } /** * Removes all files in the given directory matching the given filter * * @param directory * the directory to be cleared * @param filter * {@link FileFilter} used to filter files * @param recursive * controls weather files should be deleted from sub directories too */ public static int deleteFiles(String directory, FileFilter filter, boolean recursive) { File dir = new File(directory); if (dir.exists() && dir.isDirectory()) { int deletedFiles = 0; File[] files = dir.listFiles(filter); for (File file : files) { if (file.isDirectory()) { if (recursive) { deletedFiles += deleteFiles(file.getPath(), filter, recursive); } } else { file.delete(); deletedFiles++; } } return deletedFiles; } return 0; } public static boolean deleteDirectory(String directoryPath) { return deleteDirectory(new File(directoryPath)); } public static boolean deleteDirectory(File directory) { if (directory.exists()) { File[] files = directory.listFiles(); for (File file : files) { if (file.isDirectory()) { deleteDirectory(file); } else { file.delete(); } } } return directory.delete(); } public static void deleteFile(String path) { File file = new File(path); if(file.exists()){ file.delete(); } } }