【java】java各种删除指定文件夹或文件方法详解
2014-12-04 23:26
603 查看
一、删除文件夹(子文件全部删除)或指定文件(单一文件),可自行判定File是文件夹或文件
1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)
Java代码
2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件
Java代码
3,实现删除文件的方法,
Java代码
4,实现删除文件夹的方法,
Java代码
5,main() 方法
Java代码
main() 方法只是做了一个简单的测试,建立文件夹和文件都是本地建立,情况考虑的应该很全面了,包括文件夹包含文件夹、文件。文件的不同情况…………
实现没有问题,可以正确删除文件夹和文件。
对于其他类型文件的操作继续学习…………
二、对于单纯的想要删除指定文件夹下的指定文件可以不用上诉那么麻烦,直接遍历就可以
三、下面有个面试题:
要求:
一个文件夹中有很多子文件夹,这些文件夹或者子文件夹中可能有很多名字叫"aa.txt"的文件,写一个java程序一次删除所有的aa.txt文件
分析:
实现:
1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)
Java代码
// 验证字符串是否为正确路径名的正则表达式 private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*"; // 通过 sPath.matches(matches) 方法的返回值判断是否正确 // sPath 为路径字符串
2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件
Java代码
/** * 根据路径删除指定的目录或文件,无论存在与否 *@param sPath 要删除的目录或文件 *@return 删除成功返回 true,否则返回 false。 */ public boolean DeleteFolder(String sPath) { flag = false; file = new File(sPath); // 判断目录或文件是否存在 if (!file.exists()) { // 不存在返回 false return flag; } else { // 判断是否为文件 if (file.isFile()) { // 为文件时调用删除文件方法 return deleteFile(sPath); } else { // 为目录时调用删除目录方法 return deleteDirectory(sPath); } } }
3,实现删除文件的方法,
Java代码
/** * 删除单个文件 * @param sPath 被删除文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public boolean deleteFile(String sPath) { flag = false; file = new File(sPath); // 路径为文件且不为空则进行删除 if (file.isFile() && file.exists()) { file.delete(); flag = true; } return flag; }
4,实现删除文件夹的方法,
Java代码
/** * 删除目录(文件夹)以及目录下的文件 * @param sPath 被删除目录的文件路径 * @return 目录删除成功返回true,否则返回false */ public boolean deleteDirectory(String sPath) { //如果sPath不以文件分隔符结尾,自动添加文件分隔符 if (!sPath.endsWith(File.separator)) { sPath = sPath + File.separator; } File dirFile = new File(sPath); //如果dir对应的文件不存在,或者不是一个目录,则退出 if (!dirFile.exists() || !dirFile.isDirectory()) { return false; } flag = true; //删除文件夹下的所有文件(包括子目录) File[] files = dirFile.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) return false; //删除当前目录 if (dirFile.delete()) { return true; } else { return false; } }
5,main() 方法
Java代码
public static void main(String[] args) { HandleFileClass hfc = new HandleFileClass(); String path = "D:\\Abc\\123\\Ab1"; boolean result = hfc.CreateFolder(path); System.out.println(result); path = "D:\\Abc\\124"; result = hfc.DeleteFolder(path); System.out.println(result); }
main() 方法只是做了一个简单的测试,建立文件夹和文件都是本地建立,情况考虑的应该很全面了,包括文件夹包含文件夹、文件。文件的不同情况…………
实现没有问题,可以正确删除文件夹和文件。
对于其他类型文件的操作继续学习…………
二、对于单纯的想要删除指定文件夹下的指定文件可以不用上诉那么麻烦,直接遍历就可以
File folder = new File("files"); File[] files = folder.listFiles(); for(File file:files){ if(file.getName().equals("name.txt")){ file.delete(); } }
三、下面有个面试题:
要求:
一个文件夹中有很多子文件夹,这些文件夹或者子文件夹中可能有很多名字叫"aa.txt"的文件,写一个java程序一次删除所有的aa.txt文件
分析:
1、得到要删除aa.txt文件的根目录,可以用JFileChooser选择,也可以写死。 2、遍历、删除。 (1)取得目录以后,遍历其下面所有的文件夹和文件。 碰到文件时,判断其名称是否为aa.txt,如果是,删除,如果不是继续遍历, 碰到文件夹(目录)时,调用本身从(1)开始遍历该目录,完成后继续遍历。 3、结论--》递归可以实现
实现:
import java.io.File; public class DeleteAA { public static void main(String[] args) { DeleteAA aa=new DeleteAA(); aa.delete(new File("D:\\0526")); } private void delete(File file){ if(file.isDirectory()){ File[] files = file.listFiles(); for (File file2 : files) { delete(file2); } }else{ String name=file.getName(); if("aa.txt".equals(name)){ System.out.println(file.getAbsolutePath()); file.delete(); } } } }
相关文章推荐
- 【java】java各种删除指定文件夹或文件方法详解
- java删除指定文件夹下的文件和目录
- 用java删除文件及文件夹的新方法
- Java读写文件创建文件夹多种方法示例详解
- java删除指定目录中的文件或文件夹
- java删除文件夹|文件的方法
- C# 删除指定文件以及文件夹下的所有文件的方法
- java 递归实现删除或查询指定文件夹下的所有文件
- 查找一个文件夹下指定后缀名文件的java方法
- C++删除指定文件夹下N天及之前日志文件的方法
- Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法
- File,把指定的目录下的所有文件和文件夹删除的方法
- java中打开指定文件夹及读取文件方法
- 相当实用的——Java递归删除指定文件夹下的所有文件
- java删除指定目录下所有空文件夹的方法
- java递归删除指定目录下的文件和文件夹
- Java删除指定路径下所有文件和文件夹
- Java读写文件创建文件夹多种方法示例详解
- C#小方法- IO:删除文件夹下指定名字的文件
- java删除文件,并删除文件夹下指定文件