您的位置:首页 > 编程语言 > Java开发

Java输入某路径获取所有的文件

2017-09-13 22:04 447 查看
如果还有梦就追,至少不会遗憾和后悔

一.输入一个路径,将该路径下的(及其子目录下)的所有文件列出来。

/**
* 列出某路径下的所有文件
* @param path
*/
public void getAllFile(String path) {
File file = new File(path);
File[] listFiles = file.listFiles();
for (File list : listFiles) {
System.out.println(list);
if(list.isDirectory()) {
getAllFile(list.getPath());
}
}
}


 二.输入一个路径,将该路径下的文件、文件夹的数量统计出来。

private int fileDirCount = 0;
private int fileCount = 0;

/**
* 获取某路径下 的文件,文件夹的数量
* @param path
*/
public void getFileCount(String path) {
File file = new File(path);
File[] listFiles = file.listFiles();
for (File list : listFiles) {
if(list.isDirectory()) {
fileDirCount ++;
getFileCount(list.getPath());
}else if(list.isFile()) {
fileCount++;
}
}
}

public Map<String,Integer> getFileDirAndFileCount() {
Map<String,Integer> map = new HashMap<String, Integer>();
map.put("fileDirCount",fileDirCount);
map.put("fileCount",fileCount);
return map;
}


三.遍历某个路径下的所有文件,查找是否存在特定的文件,如果存在,则删除该文件

public void deleteSpecificFile(String path,File deleteFile) {
File file = new File(path);
File[] listFiles = file.listFiles();
for (File list : listFiles) {
if(list.isDirectory()) {
deleteSpecificFile(list.getPath(), deleteFile);
}else if(list.isFile()) {
if(list.getName().equals(deleteFile.getName())) {
boolean deleteSuccess = list.delete();
if(deleteSuccess) {
System.out.println("该文件"+list.getName()+"删除成功");
}else {
System.out.println("该文件未删除");
}
}
}
}
}


四.测试代码及显示结果

public class TestOne {
private static FileUtils fileUtils;
public static void main(String[] args) {
fileUtils = new FileUtils();
//列出当前路径下的所有文件
fileUtils.getAllFile(".");

//获取当前路径下的所有文件夹数目和文件数目
fileUtils.getFileCount(".");
Map<String,
4000
Integer> map = fileUtils.getFileDirAndFileCount();
System.out.println("文件夹数:"+map.get("fileDirCount")+"...文件数:"+map.get("fileCount"));

//删除某路径下的 特定文件,在1s后执行该任务,每次间隔5s执行一次
final File file = new File("test1.java");
Timer timer =new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
fileUtils.deleteSpecificFile(".",file);
}
},1000,5000);
}
}


结果显示:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: