java:file文件的处理总结
来源:互联网 发布:mac珊瑚色口红是几号 编辑:程序博客网 时间:2024/05/16 00:33
常用方法:
- f.exists(); 文件是否存在
- f.delete(); 只删除文件
- f.mkdirs(); 路径是否存在
- f.isFile(); 是否文件
创建文件
File file = new File();
此处会创建一个新文件;
删除文件
这里一般会有多种情况:
- 删除单个文件
import java.io.File;public class DeleteFileExample{ public static void main(String[] args) { try{ File file = new File("c:\\logfile20100131.log"); if(file.delete()){ System.out.println(file.getName() + " is deleted!"); }else{ System.out.println("Delete operation is failed."); } }catch(Exception e){ e.printStackTrace(); } }}
删除文件夹下所有文件(不包括文件夹)
- 此例会删除demo文件夹下所有文件;
- 如果demo内有文件夹且为空,也可以删除(已实际测试);
- 但demo内有文件夹且不为空,则删除此文件夹外所有文件,此文件夹保留不做处理;
try { File dir = new File("D:\\image\\demo"); File[] files = dir.listFiles(); for (int i = 0; i < files.length; i++) { files[i].delete(); System.out.println(i+"******************************8"); } } catch (Exception e) { // TODO: handle exception }
- 删除文件夹下所有文件包括文件夹
我理解为判断是否是文件夹,不是删除,是循环调用2。
完整逻辑较为复杂,没有时间写了,摘抄一个作为备份。其本质是判断子文件夹存在不为空,则循环调用删除子文件。
1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)// 验证字符串是否为正确路径名的正则表达式 private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*"; // 通过 sPath.matches(matches) 方法的返回值判断是否正确 // sPath 为路径字符串 2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件/** * 根据路径删除指定的目录或文件,无论存在与否 *@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,实现删除文件的方法,/** * 删除单个文件 * @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,实现删除文件夹的方法,/** * 删除目录(文件夹)以及目录下的文件 * @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() 方法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() 方法只是做了一个简单的测试,建立文件夹和文件都是本地建立,情况考虑的应该很全面了,包括文件夹包含文件夹、文件。文件的不同情况…………实现没有问题,可以正确删除文件夹和文件。
- 删除某种扩展名文件
(仅做参考,未测试)
import java.io.*;public class FileChecker { private static final String FILE_DIR = "c:\folder"; private static final String FILE_TEXT_EXT = ".txt"; public static void main(String args[]) { new FileChecker().deleteFile(FILE_DIR,FILE_TEXT_EXT); } public void deleteFile(String folder, String ext){ GenericExtFilter filter = new GenericExtFilter(ext); File dir = new File(folder); //list out all the file name with .txt extension String[] list = dir.list(filter); if (list.length == 0) return; File fileDelete; for (String file : list){ String temp = new StringBuffer(FILE_DIR) .append(File.separator) .append(file).toString(); fileDelete = new File(temp); boolean isdeleted = fileDelete.delete(); System.out.println("file : " + temp + " is deleted : " + isdeleted); } } //inner class, generic extension filter public class GenericExtFilter implements FilenameFilter { private String ext; public GenericExtFilter(String ext) { this.ext = ext; } public boolean accept(File dir, String name) { return (name.endsWith(ext)); } }}
参考资料:
https://www.mkyong.com/java/how-to-delete-file-in-java/
http://www.111cn.net/jsp/Java/57795.htm
http://www.jb51.net/article/42547.htm
0 0
- java:file文件的处理总结
- Java中常见异常处理、文件File类、流的知识点总结
- java输入输出处理-文件file
- java file 海量文件处理
- JAVA之File文件处理
- Java文件file操作总结
- Java文件file操作总结
- Java文件file操作总结
- Java文件file操作总结
- Java处理文件的方法(FileInputStream、FileReader、File*)
- JAVA File类对文件的一些处理
- Java处理文件的方法(FileInputStream、FileReader、File*)
- java 上传文件的处理(MultipartFile file)
- java 文件处理总结
- java 的File文件
- java文件File,FileMethod知识点总结
- Java关于File文件类操作总结
- Java IO总结(一) File文件类
- 基于原生JS实现仿JQ中的Ajax
- HashMap源码详细解释
- Mac 上编译MapBox Native gl
- 多态
- 利用scp 远程上传下载文件/文件夹,ssh上传下载文件
- java:file文件的处理总结
- 【杭电1058】Humble Numbers-动态规划
- DTV_SI 汇总
- 事务是什么?事务的四个属性是什么?
- Jquery Datatable
- 隔壁
- 冒泡排序
- cordova安装不上,怎么办
- 在安卓上运行 TensorFlow:让深度学习进入移动端