疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java文件处理 之遍历文件夹


 

  一:(1) java 确实 在一些方面比 c++做的好,记得我当时用c++遍历文件夹下的所有文件时,费了老半天的功夫呢 —— 最后,百度的结果还是不同的编译环境提供的.h头文件是不同的,我勒个去 …… 跨平台性好差!

  (2)java 里面的包装好的类非常方面,用就可以了,要想看源代码的只要下载相应的src文件惊醒关联就可以看到详细的功能内部实现。

  二:今天的问题是想把一个文件夹下面的所有数据进行处理,第一步得依次获得此文件夹下的所有文件的名称 —— java 里有这个功能

  下面方法也可以,我这种直接就可以得到名字,不需要先转化为File对象

  File file=new File("D:\");

  String test[];

  test=file.list();

  for(int i=0;i

  {

  System.out.println(test[i]);

  }

  三:一个完整的工程

  package edu.tju.cs;

  import java.io.File;

  import java.util.ArrayList;

  public class Calculate3Dimensions {

  private static ArrayList subFilePaths = new ArrayList();// 子文件夹集合

  private static ArrayList fileList = new ArrayList();// 该目录下的文件集合

  public void getAllFiles(String filePath){

  /*上面方法也可以,我这种直接就可以得到名字,不需要先转化为File对象

  File file=new File("D:\");

  String test[];

  test=file.list();

  for(int i=0;i

  {

  System.out.println(test[i]);

  }*/

  File root = new File(filePath);

  File[] files = root.listFiles();

  for(File file:files){

  if(file.isDirectory()){

  // 递归调用获取子目录下的文件

  getAllFiles(file.getAbsolutePath());

  // 添加子文件夹的路径

  //subFilePaths.add(file.getAbsolutePath());

  System.out.println("显示"+filePath+"下所有子目录及其文件"+file.getAbsolutePath());

  }else{

  //fileList.add(file);

  // 添加文件的全路径

  subFilePaths.add(file.getAbsolutePath());

  System.out.println("显示"+filePath+"下所有子目录"+file.getAbsolutePath());

  }

  }

  }

  public void R_DTxt(String filePath){

  System.out.println("显示" + filePath + "下的所有子文件夹:@@@@");

  //ReadToWrite rw = new ReadToWrite();

  for(String subFilePath:subFilePaths){

  System.out.println("文件名称:" + subFilePath);

  //rw.readTxtFile(subFilePath);

  }

  System.out.println("显示" + filePath + "下的所有子文件:&&&&&");

  for(File file:fileList){

  System.out.println("文件名称:" + file);

  }

  }

  public static void main(String[] args){

  String filePath = "D:\tjdata_metro\test";

  Calculate3Dimensions cal = new Calculate3Dimensions();

  cal.getAllFiles(filePath);

  cal.R_DTxt(filePath);

  }

  }