列出目录下所有文件名---ListFiles.java

/*
 * Created on 2004-12-9
 * 我还未发现哪个常用软件中有这个功能,因此写了这个class
 * 你可以将光盘中的文件名列在txt文件中,便于将来的查找,或打印出来。
 * 不用为了查找某个光盘中的文件而一张一张光盘去找,又慢又损耗光驱。
 *  当然也可以选择某个目录,记录下目录下的所有文件名。
 */

/**
 * @author Shi Weifeng
 * ListFiles类能够将目录下的所有文件名写入你指定的文本文件中。
 */

import java.io.*;
public class ListFiles {
 private static String listFileStr="";
 public static void main(String[] args) {
  try
  {
   File saveFile=new File(args[1]);
   FileWriter fw=new FileWriter(saveFile);
   ListFiles lf=new ListFiles();
   lf.listFile(args[0]);
   fw.write(listFileStr);
   fw.close();
  }
  catch (ArrayIndexOutOfBoundsException ea)
  {
   //参数提示
   System.out.println("Usage: ListFiles <source dir> <target file>");
   
  }
  catch (IOException e)
  {
   System.out.println("IO error!/r/n"+e.toString());
  }

 }
 public void listFile(String rp)
  {
  
   File file=new File(rp);
   File list[]=file.listFiles();
   for(int i=0;i<list.length;i++)
   {
    try
    {
     if (list[i].isDirectory())
     {
      new ListFiles().listFile(list[i].toString());
     }
     else
     {
      listFileStr+=list[i].getAbsolutePath()+"/r/n";
      System.out.println(list[i].getAbsolutePath());
     }
    }
    catch (Exception ex)
    {
     listFileStr+="Access deny:"+list[i].getAbsolutePath()+"/r/n";
     System.out.println("Access deny:"+list[i].getAbsolutePath());
    }
   }

  }

}

以下是递归实现列出当前工程下所有.java文件的代码: ```java import java.io.File; public class ListJavaFiles { public static void main(String[] args) { File projectDir = new File("."); listJavaFiles(projectDir); } public static void listJavaFiles(File dir) { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) { listJavaFiles(file); } else if (file.getName().endsWith(".java")) { System.out.println(file.getAbsolutePath()); } } } } ``` 代码解析: 1. 首先定义了一个 `listJavaFiles` 方法,该方法接收一个 `File` 类型的参数,表示要列出其中的所有 `.java` 文件。 2. 在方法中,首先调用 `listFiles` 方法获取当前目录下的所有文件和文件夹。 3. 然后遍历这些文件和文件夹,如果是文件夹,则递归调用 `listJavaFiles` 方法,如果是 `.java` 文件,则输出其绝对路径。 4. 在 `main` 方法中,首先获取当前工程的目录,然后调用 `listJavaFiles` 方法,即可列出所有 `.java` 文件的路径。 注意事项: 1. 代码中使用了 `endsWith` 方法判断文件名是否以 `.java` 结尾,这种方式并不是非常严谨,因为有可能存在文件名为 `.java` 的文件,但是不是 Java 源文件。更好的方式是使用正则表达式判断文件内容是否符合 Java 语法规范。 2. 代码中没有处理文件访问权限的问题,如果当前用户没有读取某个文件的权限,程序将会抛出异常。可以在代码中添加异常处理逻辑,或者使用 Java 8 的新特性 `Files.walk` 方法来遍历文件,该方法可以自动处理文件访问权限的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值