代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
查找两个文件夹中不同文件名的文件
作者:
/ 发布于
2017/9/26
/
671
获取A,B两个文件夹下(包含子目录)的所有文件对象,并存储到集合中,然后挑出A文件夹中有而B文件夹没有的文件名,最后打印文件名和路径
package com.test; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; //打印输出类 public class FindFile { public static void main(String[] args) { //过滤后缀名的对象 FileFilter filterByFile=(FileFilter) new FilterByFile("");//比如后缀名".txt" //路径下的文件对象 File dir = new File("d:\\baidu\\"); File dir1= new File("d:\\taobao\\"); //存储文件的list对象 List<File> list = new ArrayList<File>(); List<File> list1 = new ArrayList<File>(); //调用相应方法,添加文件到集合 list=getFileList(dir,list,filterByFile); list1=getFileList(dir1,list1,filterByFile); //只存储文件名和文件路径的map对象 Map<String, String> map0 = new HashMap<String, String>(); Map<String, String> map1 = new HashMap<String, String>(); System.out.println("A文件夹的所有文件:"); for(File file:list){ System.out.println(""+file); map0.put(file.getName(),file.getPath()); } System.out.println("B文件夹的所有文件:"); for(File file:list1){ System.out.println(""+file); map1.put(file.getName(),file.getPath()); } map0.keySet().removeAll(map1.keySet());//移除文件名及后缀相同的文件 System.out.println("A文件夹有而B文件夹没有的文件:"); for(Entry<String, String> entry : map0.entrySet()){ System.out.println(entry.getKey()+" --> "+entry.getValue()); } } private static List<File> getFileList(File dir, List<File> list,FileFilter filterByFile) { //遍历路径下的所有文件 File[] files = dir.listFiles(); for(File file:files){ if(file.isDirectory()){ getFileList(file, list, filterByFile);//如果是目录需要递归 }else{ if(filterByFile.accept(file)) list.add(file); } } return list; } } //过滤器类: import java.io.File; import java.io.FileFilter; public class FilterByFile implements FileFilter { public String suffix; public FilterByFile(String suffix) { super(); this.suffix = suffix; } public boolean accept(File pathname) { return pathname.getName().endsWith(suffix); } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3