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

来源:互联网 发布:泰国数据漫游资费 编辑:程序博客网 时间:2024/06/12 01:50

如果还有梦就追,至少不会遗憾和后悔



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

/** * 列出某路径下的所有文件 * @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, 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() {@Overridepublic void run() {fileUtils.deleteSpecificFile(".",file);}},1000,5000);}}

结果显示:





阅读全文
0 0
原创粉丝点击