Java获取、删除文件和目录
package javatest; import java.io.File;
import java.util.ArrayList;
import java.util.regex.Pattern; class FileUtils
{
public static void main(String[] args)
{
String dir = "C:\\Users\\hp\\Desktop\\test"; System.out.println("递归的获取该目录下的所有文件:");
for (File f : FileUtils.getFilesRecursive(dir))
{
System.out.println(f.getAbsolutePath());
} System.out.println("递归的获取该目录下的所有子目录:");
for (File f : FileUtils.getDirecotriesRecursive(dir))
{
System.out.println(f.getAbsolutePath());
} System.out.println("删除该目录下的所有.html文件");
removeFiles(dir,null);
System.out.println("Done.");
} /*******递归的获取某个目录下的所有文件******/
public static ArrayList<File> getFilesRecursive(String dir)
{
ArrayList<File> files = new ArrayList<File>(); File targetDir = new File(dir);
if (targetDir.exists())
{
for (File file : targetDir.listFiles())
{
if (file.isFile())
{
files.add(file);
}
else if (file.isDirectory())
{
files.addAll(getFilesRecursive(file.getAbsolutePath()));
}
}
} return files;
} /*******递归的获取某个目录下的所有子目录******/
public static ArrayList<File> getDirecotriesRecursive(String dir)
{
ArrayList<File> dirs = new ArrayList<File>(); File targetDir = new File(dir);
if (targetDir.exists())
{
for (File f : targetDir.listFiles())
{
if (f.isDirectory())
{
dirs.add(f);
dirs.addAll(getDirecotriesRecursive(f.getAbsolutePath()));
}
}
} return dirs;
} /*******删除某个目录下,文件名符合过滤条件的所有文件,然后删除空的子目录******/
public static void removeFiles(String targetDir, String fileRegex)
{
ArrayList<File> files = getFilesRecursive(targetDir);
//没有过滤条件,则删除该目录下的所有文件和子目录
if (fileRegex == null||fileRegex.equals("") )
{
//先删除所有文件.
for (File file : files)
{
file.delete();
}
//由内到外删除所有空目录.
ArrayList<File> dirs=getDirecotriesRecursive(targetDir);
for (int i=0;i< dirs.size();++i)
{
dirs.get(dirs.size()-1-i).delete();
}
}
else
{
//用正则表达式过滤文件名
Pattern pat = Pattern.compile(fileRegex);
for (File file : files)
{
if (pat.matcher(file.getAbsolutePath()).find())
file.delete();
}
}
}
}
Java获取、删除文件和目录的更多相关文章
- java递归删除文件及目录
package base; import java.io.File; public class delete { public static void main(String[] args) ...
- Java精选笔记_IO流【File(文件)类、遍历目录下的文件、删除文件及目录】
File(文件)类 File类用于封装一个路径,该路径可以是从系统盘符开始的绝对路径,也可以是相对于当前目录而言的相对路径 File类内部封装的路径可以指向一个文件,也可以指向一个目录,在使用File ...
- Java中删除文件、删除目录及目录下所有文件(转)
原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...
- HDFS的Java客户端操作代码(HDFS删除文件或目录)
1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...
- Java删除文件或目录及目录下所有文件
一直在做C++相关开发的工作.突然某一天一时兴起,想学习下Java开发.然后再网上找到一本Java简明教程,入门是够用了.看到文件IO这一章,想起之前用C++做的删除文件或目录的练习,于是打算用Jav ...
- 【java工具类】删除文件及目录
FileUtil.java /** * 删除文件及目录 * @param file; */ public static boolean delFile(File file) { if (!file.e ...
- java删除文件及其目录
1.删除指定文件路径 public @ResponseBody String deleteFiles(HttpServletRequest request) { log.info(this.getCl ...
- 【改造Linux命令之rm - 删除文件或目录-】
用途说明 rm命令是常用的命令,用来删除文件或目录(remove files or directories).它也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比 ...
- IOS中获取各个文件的目录路径的方法和NSFileManager类
转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永 ...
- java获取classpath文件路径空格转变成了转义字符%20的问题
java获取classpath文件路径空格转变成了转义字符%20的问题 这个问题很纠结,服务器的文件路径带有空格,空格被转化是%20了,悲剧就出现了 下面展示一段代码String path = get ...
随机推荐
- (Struts)ActionForm类及表单数据验证
LoginForm代码: /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ pac ...
- 理解jar
对于大多数 Java 开发人员来说,JAR 文件及其 “近亲” WAR 和 EAR 都只不过是漫长的 Ant 或 Maven 流程的最终结果.标准步骤是将一个 JAR 复制到服务器(或者,少数情况下是 ...
- Spring 作用域 scope
spring的作用域将对Bean的生命周期和创建方式产生影响. 主要分为五种类型的作用域 singleton (默认)在spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在. ...
- 畅所欲言第1期 - 从Viola&Jones的人脸检测说起
转载自http://c.blog.sina.com.cn/profile.php?blogid=ab0aa22c890006v0 不少人认识我或者听说我的名字都是因为我过去做的关于人脸检测的工作,那么 ...
- Linux Systemcall Int0x80方式、Sysenter/Sysexit Difference Comparation
目录 . 系统调用简介 . Linux系统调用实现方式的演进 . 通过INT 0x80中断方式进入系统调用 . 通过sysenter指令方式直接进入系统调用 . sysenter/sysexit编程示 ...
- Latex 笔记
A source file is made up of text, formulas, and instructions (commands) to $\LaTeX.$ Commands start ...
- VMware 11安装Mac OS X 10.11.5虚拟机以及优化心得
随着苹果WWC大会退出了MAC最新版的10.11.5,本着一颗“极客”的心情,在第一时间用VMWARE虚拟机装上了.然后各种卡顿这里分享一下优化mac虚拟机的心得. 1 从Dock上移除Dashboa ...
- Android日志服务 记录日志
转: http://easion-zms.iteye.com/blog/981568 import java.io.BufferedReader; import java.io.File; impor ...
- 提示用户一直输入数字(默认为正整数),当用户输入end的时候显示当前输入数字中的最大值。
string input = ""; ; while (input != "end") { Console.WriteLine("请输入一个正整数,输 ...
- 把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方。Duplicate entry
把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方.Duplicate entry ’3′ for key ‘PRIMARY’ 你的主键是不 ...