Java 文件目录的遍历

来源:互联网 发布:渔夫帽品牌知乎 编辑:程序博客网 时间:2024/05/16 09:33
package com.vim.ZipFile;import java.io.File;import java.util.Queue;import java.util.Stack;import java.util.concurrent.ConcurrentLinkedQueue;public class TraverFileList{public static void main(String[] args){String pathname="C:/Users/lenovo/Desktop/算法";//traver(pathname);//traverFile(pathname);queueTraver(pathname);}public static void traver(String pathname){File file=new File(pathname);if(!file.exists())return;else if(file.isDirectory()){String[] filelist=file.list();for(int i=0; i<filelist.length; i++)traver(file.getAbsolutePath()+"\\"+filelist[i]);}else System.out.println(pathname);}public static void traverFile(String pathname){Stack<String> stack=new Stack<String>();stack.push(pathname);while(!stack.empty()){File file=new File(stack.pop());if(!file.exists())return;else if(file.isDirectory()){String[] list=file.list();for(int i=0; i<list.length; i++)stack.push(file.getAbsolutePath() + "\\" + list[i]);}elseSystem.out.println(file.getAbsolutePath());}}public static void queueTraver(String pathname){int count=0;Queue<String> queue=new ConcurrentLinkedQueue<String>();queue.add(pathname);while(!queue.isEmpty()){File file=new File(queue.remove());if(!file.exists())return;else if(file.isDirectory()){String[] list=file.list();for(int i=0; i<list.length; i++)queue.add(file.getAbsolutePath() + "\\" + list[i]);}else{count++;System.out.println(file.getAbsolutePath());}}System.out.println("count: " + count);}}

0 0
原创粉丝点击