java 删除所有的文件及文件夹
/** * 将字符串写入文件 * * @param file 文件 * @param content 写入内容 * @param append 是否追加在文件末 * @return {@code true}: 写入成功<br>{@code false}: 写入失败 */ public static boolean writeFileFromString(File file, String content, boolean append) { if (file == null || content == null) return false; if (!FileUtils.createOrExistsFile(file)) return false; BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(file, append)); bw.write(content); return true; } catch (IOException e) { e.printStackTrace(); return false; } finally { CloseUtils.closeIO(bw); } } /** * 判断目录是否存在,不存在则判断是否创建成功 * * @param dirPath 目录路径 * @return {@code true}: 存在或创建成功<br>{@code false}: 不存在或创建失败 */ public static boolean createOrExistsDir(String dirPath) { return createOrExistsDir(getFileByPath(dirPath)); } /** * 判断目录是否存在,不存在则判断是否创建成功 * * @param file 文件 * @return {@code true}: 存在或创建成功<br>{@code false}: 不存在或创建失败 */ public static boolean createOrExistsDir(File file) { // 如果存在,是目录则返回true,是文件则返回false,不存在则返回是否创建成功 return file != null && (file.exists() ? file.isDirectory() : file.mkdirs()); } /** * 判断文件是否存在,不存在则判断是否创建成功 * * @param filePath 文件路径 * @return {@code true}: 存在或创建成功<br>{@code false}: 不存在或创建失败 */ public static boolean createOrExistsFile(String filePath) { return createOrExistsFile(getFileByPath(filePath)); } /** * 判断文件是否存在,不存在则判断是否创建成功 * * @param file 文件 * @return {@code true}: 存在或创建成功<br>{@code false}: 不存在或创建失败 */ public static boolean createOrExistsFile(File file) { if (file == null) return false; // 如果存在,是文件则返回true,是目录则返回false if (file.exists()) return file.isFile(); if (!createOrExistsDir(file.getParentFile())) return false; try { return file.createNewFile(); } catch (IOException e) { e.printStackTrace(); return false; } } /** * 判断文件是否存在,存在则在创建之前删除 * * @param file 文件 * @return {@code true}: 创建成功<br>{@code false}: 创建失败 */ public static boolean createFileByDeleteOldFile(File file) { if (file == null) return false; // 文件存在并且删除失败返回false if (file.exists() && file.isFile() && !file.delete()) return false; // 创建目录失败返回false if (!createOrExistsDir(file.getParentFile())) return false; try { return file.createNewFile(); } catch (IOException e) { e.printStackTrace(); return false; } } 删除文件夹及文件夹内的所有文件 1: public static boolean deleteAllInDir(final File dir) { return deleteFilesInDirWithFilter(dir, new FileFilter() { @Override public boolean accept(File pathname) { return true; } }); } public static boolean deleteFilesInDirWithFilter(final File dir, final FileFilter filter) { if (dir == null || filter == null) return false; // dir doesn't exist then return true if (!dir.exists()) return true; // dir isn't a directory then return false if (!dir.isDirectory()) return false; File[] files = dir.listFiles(); if (files != null && files.length != 0) { for (File file : files) { if (filter.accept(file)) { if (file.isFile()) { if (!file.delete()) return false; } else if (file.isDirectory()) { if (!deleteDir(file)) return false; } } } } return true; } private static boolean deleteDir(final File dir) { if (dir == null) return false; // dir doesn't exist then return true if (!dir.exists()) return true; // dir isn't a directory then return false if (!dir.isDirectory()) return false; File[] files = dir.listFiles(); if (files != null && files.length > 0) { for (File file : files) { if (file.isFile()) { if (!file.delete()) return false; } else if (file.isDirectory()) { if (!deleteDir(file)) return false; } } } return dir.delete(); } 删除所有的文件及文件夹代码如下: /** * 删除文件或文件夹 */ public class TestFileOrDirectory { public static void main(String[] args) { boolean result = deleteFileOrDirectory("D:\\测试删除"); System.out.println(result); } /** * 删除文件或文件夹 * * @param fileName 文件名 * @return 删除成功返回true,失败返回false */ public static boolean deleteFileOrDirectory(String fileName) { File file = new File(fileName); // fileName是路径或者file.getPath()获取的文件路径 if (file.exists()) { if (file.isFile()) { return deleteFile(fileName); // 是文件,调用删除文件的方法 } else { return deleteDirectory(fileName); // 是文件夹,调用删除文件夹的方法 } } else { System.out.println("文件或文件夹删除失败:" + fileName); return false; } } /** * 删除文件 * * @param fileName 文件名 * @return 删除成功返回true,失败返回false */ public static boolean deleteFile(String fileName) { File file = new File(fileName); if (file.isFile() && file.exists()) { file.delete(); System.out.println("删除文件成功:" + fileName); return true; } else { System.out.println("删除文件失败:" + fileName); return false; } } /** * 删除文件夹 * 删除文件夹需要把包含的文件及文件夹先删除,才能成功 * * @param directory 文件夹名 * @return 删除成功返回true,失败返回false */ public static boolean deleteDirectory(String directory) { // directory不以文件分隔符(/或\)结尾时,自动添加文件分隔符,不同系统下File.separator方法会自动添加相应的分隔符 if (!directory.endsWith(File.separator)) { directory = directory + File.separator; } File directoryFile = new File(directory); // 判断directory对应的文件是否存在,或者是否是一个文件夹 if (!directoryFile.exists() || !directoryFile.isDirectory()) { System.out.println("文件夹删除失败,文件夹不存在" + directory); return false; } boolean flag = true; // 删除文件夹下的所有文件和文件夹 File[] files = directoryFile.listFiles(); for (int i = 0; i < files.length; i++) { // 循环删除所有的子文件及子文件夹 // 删除子文件 if (files[i].isFile()) { flag = deleteFile(files[i].getAbsolutePath()); if (!flag) { break; } } else { // 删除子文件夹 flag = deleteDirectory(files[i].getAbsolutePath()); if (!flag) { break; } } } if (!flag) { System.out.println("删除失败"); return false; } // 最后删除当前文件夹 if (directoryFile.delete()) { System.out.println("删除成功:" + directory); return true; } else { System.out.println("删除失败:" + directory); return false; } } }
public class AndroidOSnet { public static void main(String[] args) { File dirFile =new File("C:\\aa"); deleteDirectory(dirFile); } public static void deleteDirectory(File file){ if(file.isFile()){ file.delete();//清理文件 }else{ File list[] = file.listFiles(); if(list!=null){ for(File f: list){ deleteDirectory(f); } file.delete();//清理目录 } }
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论