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<test.length;i++)
  {
   System.out.println(test[i]);
  }

三:一个完整的工程

package edu.tju.cs;

import java.io.File;
import java.util.ArrayList;

public class Calculate3Dimensions {

	private static ArrayList<String>  subFilePaths = new ArrayList<String>();// 子文件夹集合
	private static ArrayList<File> fileList = new ArrayList<File>();// 该目录下的文件集合

	public void getAllFiles(String filePath){

		/*上面方法也可以,我这种直接就可以得到名字,不需要先转化为File对象
		  File file=new File("D:\\");
		  String test[];
		  test=file.list();
		  for(int i=0;i<test.length;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);
	}

}
时间: 2025-01-17 17:12:52

java文件处理 之 遍历文件夹的相关文章

Java本地文件操作(五)遍历文件夹

package com.yeqc.filescan.main; import java.io.File; public class Scanner { public static void main(String[] args) { printFiles(new File("../FileScanner"),1); } public static void printFiles(File dir,int tab){ if (dir.isDirectory()) { File[] nex

【Java】读取其下所有文件夹与文件的路径

如果在f:\aa文件夹中,有如下图的文件夹与文件: 那么,在Java中,则如此读取f:/aa下的所有文件路径: 1.首先由于用到了文件与容器类下的ArrayList,所以在开头要引入如下包: import java.io.*; import java.util.*; 2.方法如下,其中File dirFile除了盘符,比如f:,以外,能够接受一切合法的路径.由于盘符下含有一些系统文件,拒绝访问,因为读取盘符,可能会出现空指针异常. //这里是仅仅查询当前路径下的所有文件夹.文件并且存放其路径到文

复习 使用for、while循环遍历文件,数据类型转换

1. python访问文件 通过内置函数open打开文件,看一下open函数解释: 打开文件 返回的是一个文件对象 fd = open('/tmp/tmp.txt') 查看他的方法: 关闭文件: fd.close() 向文件内写入: fd = open('/tmp/tmp.txt', 'w') 这样打开文件等于重写文件,文件原有的内容就覆盖掉了 fd.write("a") 这样写入文件,写入文件后不能查看到,我们必须把他关闭: fd.close() 关闭之后,就可以查看到文件内的信息了

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

Java遍历文件夹下的所以文件

利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重命名操作 1 package com.zhang.test; 2 3 import java.io.File; 4 5 public class getfilepath { 6 7 public static void main(String[] args) { 8 getDirectory(new

Java遍历文件夹及图像缩放批处理

记得我以前写过图像处理的文章是用大学里教的数字图像处理来操作,用个Matlab,不过最近实习中和一妹纸起了一点小冲突,双方都没多少时间处理这些资源,然后我是静下心来去思考了,妹纸怎么会花这么多的时间在这一工作上. 然后跑过去沟通,了解她整个工作的流程,果然有所发现,她修改图片大小是用美图来一张一张改的,整个过程花了1个小时,心里灵机一动,批量处理肯定能写,以前做过类似的,但是妹纸没有Matlab.为了解放生产力,我还是晚上时间把东西赶了出来. 首先说一下文件的规定,有多个文件,每个文件有jpg和

java 遍历文件夹里的文件

Java遍历文件夹的2种方法: A.不使用递归: import java.io.File; import java.util.LinkedList; public class FileSystem { public static void main(String[] args) { long a = System.currentTimeMillis(); LinkedList list = new LinkedList(); File dir = new File("c:\\java\\&quo

java遍历文件夹

使用递归: import java.io.File; import java.util.ArrayList; public class FileSystem1 { private static ArrayList filelist = new ArrayList(); public static void main(String[] args) { long a = System.currentTimeMillis(); refreshFileList("C:/Users/shibin/Desk

JAVA 遍历文件夹下的所有文件

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); if (file.exists()) { LinkedList<File> list = new LinkedList<File>(); File[] files = file.listFile