Java遍历文件夹的2种方法:

A.不使用递归:

  1. import java.io.File;
  2. import java.util.LinkedList;
  3. public class FileSystem {
  4. public static void main(String[] args) {
  5.  
  6. long a = System.currentTimeMillis();
  7.  
  8. LinkedList list = new LinkedList();
  9. File dir = new File("c:\\java\\");
  10. File file[] = dir.listFiles();
  11. for (int i = 0; i < file.length; i++) {
  12. if (file[i].isDirectory())
  13. list.add(file[i]);
  14. else
  15. System.out.println(file[i].getAbsolutePath());
  16. }
  17. File tmp;
  18. while (!list.isEmpty()) {
  19. tmp = list.removeFirst();
  20. if (tmp.isDirectory()) {
  21. file = tmp.listFiles();
  22. if (file == null)
  23. continue;
  24. for (int i = 0; i < file.length; i++) {
  25. if (file[i].isDirectory())
  26. list.add(file[i]);
  27. else
  28. System.out.println(file[i].getAbsolutePath());
  29. }
  30. } else {
  31. System.out.println(tmp.getAbsolutePath());
  32. }
  33. }
  34.  
  35. System.out.println(System.currentTimeMillis() - a);
  36. }
  37. }
          

B.使用递归:

  1. import java.io.File;
  2. import java.util.ArrayList;
  3. public class FileSystem1 {
  4. private static ArrayList filelist = new ArrayList();
  5.  
  6. public static void main(String[] args) {
  7.  
  8. long a = System.currentTimeMillis();
  9. refreshFileList("c:\\java");
  10. System.out.println(System.currentTimeMillis() - a);
  11. }
  12. public static void refreshFileList(String strPath) {
  13. File dir = new File(strPath);
  14. File[] files = dir.listFiles();
  15.  
  16. if (files == null)
  17. return;
  18. for (int i = 0; i < files.length; i++) {
  19. if (files[i].isDirectory()) {
  20. refreshFileList(files[i].getAbsolutePath());
  21. } else {
  22. String strFileName = files[i].getAbsolutePath().toLowerCase();
  23. System.out.println("---"+strFileName);
  24. filelist.add(files[i].getAbsolutePath());
  25. }
  26. }
  27. }
  28. }
  29. 结论:经过测试,使用递归的方法B性能相对好一些。
  30.  
  31. 文件夹操作
    http://www.cnblogs.com/springcsc/archive/2009/12/03/1616367.html

java 遍历文件夹里的文件的更多相关文章

  1. java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用

    java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用 import java.io.BufferedReader; import java.io.BufferedWrite ...

  2. python 批量创建文件及文件夹(文件夹里再创文件)

    python 批量创建文件及文件夹(文件夹里再创文件)思路:文件建到哪>文件名字叫啥>创建文件夹>去新建的文件下>新建文件>给文件里边写东西>写个反馈给控制台> ...

  3. [BAT] 以当前时间为名创建文件夹,将本地文件夹里的文件拷贝到远程共享目录,而且保证本地和Jenkins上运行都成功

    @echo off rem connect to szotpc801 net use * /del /yes NET USE X: \\10.66.234.95\d$ Autotest123 /use ...

  4. oracle 数据恢复,只有oradata文件夹里的文件,没有备份文件的数据库恢复,重装系统后,oracle 10g数据库恢复

    格式化重装系统后,才想起来oracle 10g 数据库没有做备份,开始以为很麻烦,没想到数据库恢复的还挺顺利的 恢复方法: 1,把原来的数据库文件备份,(D:\oracle\product\10.2. ...

  5. ionic/cordvoa 修改platform文件夹里的文件,build会覆盖问题

    这个问题开始让我感觉很崩溃,然后,我也很意外,如果遇到可以试一试 情景: 编辑platform/android/build.gradle 看了一下cordova 命令,好像还没这个命令,但是我还真的执 ...

  6. WinRAR打包时不包含文件夹本身,只打包文件夹里的文件和目录

    加上-ep1 参数即可. rar u -m3 -s -r -o+ -ep1 -x*.zip client_zmv9.zip ".\client_zmv9\*"

  7. Android中asset文件夹和raw文件夹区别与用法

    *res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点:1.res/raw中的文件会被映射到R ...

  8. C#压缩文件,C#压缩文件夹,C#获取文件

    using System; using System.Data; using System.Configuration; using System.Collections.Generic; using ...

  9. VMware虚拟机文件夹中各文件作用详解

    虚拟机的文件管理由VMware Workstation来执行 一个虚拟机一般以一系列文件的形式储存在宿主机中,这些文件一般在由workstation为虚拟机所创建的那个目录中 这里列出了这些关键文件及 ...

随机推荐

  1. Java for LeetCode 049 Anagrams

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  2. XP下使用IIS访问asp出现无权查看网页问题的解决办法

    这是用户权限问题,因为你用的磁盘是NTFS格式. 解决方法: 一.添加用户(“Everyone”或者“IUSR_你的机器名”,如IUSR_HONG,即“Internet 来宾用户”) 二.修改用户权限 ...

  3. UVALive 7261 Xiongnu's Land (扫描线)

    Wei Qing (died 106 BC) was a military general of the Western Han dynasty whose campaigns against the ...

  4. HDU 3833 YY's new problem ()

    YY's new problem Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  5. HDU1568斐波那契推理

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. 二、JavaScript语言--JS基础--JavaScript进阶篇--事件响应

    1.什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户 ...

  7. linux rdsktop 运程管理 windows

    [root@ok ISO]# yum list |grep rdesktop rdesktop.x86_64 1.7.1-1.el6 base [root@ok ISO]# yum install r ...

  8. 使用Java内存映射(Memory-Mapped Files)处理大文件

    >>NIO中的内存映射 (1)什么是内存映射文件内存映射文件,是由一个文件到一块内存的映射,可以理解为将一个文件映射到进程地址,然后可以通过操作内存来访问文件数据.说白了就是使用虚拟内存将 ...

  9. js 实现单行文本滚动效果

    js 代码如下: /***************滚动场次开始*****************/ function ScrollText(content, btnPrevious, btnNext, ...

  10. 【转】解决编译Apache出现的问题:configure: error: APR not found . Please read the documentation

    这里写的很清楚了,已验证可用 http://blog.csdn.net/linghao00/article/details/7926458