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 File("E:/背景图"));
 9     }
10     // 递归遍历
11     private  static void getDirectory(File file) {
12         File flist[] = file.listFiles();
13         if (flist == null || flist.length == 0) {
14             return ;
15         }
16         for (File f : flist) {
17             if (f.isDirectory()) {
18                 //如果是文件夹则继续
19                 getDirectory(f);
20             } else {
21                 //这里将列出所有的文件
22                 System.out.println(f.getAbsolutePath());
23                 /**
24                  * 在这里则可以对文件进行重命名或者对某一类文件进行重编码,如:对.java文件转码成utf-8
25                  */
26                 //文件重命名示例如下
27                 String filename= f.getName();
28                 String suffix=  filename.substring(filename.lastIndexOf("."), filename.length());
29                 String absolutePath=f.getAbsolutePath();
30                 String path=absolutePath.substring(0,absolutePath.lastIndexOf("\\")+1);
31                 String newname=path+System.currentTimeMillis()+""+suffix;
32                 File newfile=new File(newname);
33                 if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名
34                     System.out.println(newname+"已经存在!");
35                 else{
36                     f.renameTo(newfile);
37                 }
38             }
39         }
40     }
41 }

对文件重编码看另一篇文章。http://www.cnblogs.com/zhangjinru123/p/7225775.html

时间: 2024-12-26 16:50:13

Java遍历文件夹下的所以文件的相关文章

Java遍历一个文件夹下的全部文件

Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其它流类不同的是,流类关心的是文件的内容.而File类关心的是磁盘上文件的存储. 一,File类有多个构造器,经常使用的构造器有: 1.public File(String pathname){} 在pathname路径下创建文件对象 2.public File(String path,String name){} 在path參数指定的文件夹中创建具有给定名字的File对象.假设path为null,构造器将使用

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

如何遍历文件夹下上亿文件而不溢出(转载)

序:一个文件夹下面有很多层的小文件,如何算出这个文件夹下面有多少文件?递归遍历,简单暴力,递归在一般情况确实是比较方便的解决方案,但是当文件夹深度多深,递归的反复调用会导致方法一直无法释放,造成jvm的栈溢出.那我们该怎么办? 原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6031894.html 新浪微博:intsmaze刘洋洋哥 微信:intsmaze 说实话这个问题我以前也没有遇到过,我是听一位我很敬佩的IT前辈讲的他曾经的面试经历.他说他当时比较

如何遍历文件夹下上亿文件而不栈溢出

序:一个文件夹下面有很多层的小文件,如何算出这个文件夹下面有多少文件?递归遍历,简单暴力,递归在一般情况确实是比较方便的解决方案,但是当文件夹深度多深,递归的反复调用会导致方法一直无法释放,造成jvm的栈溢出.那我们该怎么办? 原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6031894.html 新浪微博:intsmaze刘洋洋哥 微信:intsmaze 说实话这个问题我以前也没有遇到过,我是听一位我很敬佩的IT前辈讲的他曾经的面试经历.他说他当时比较

遍历一个文件夹下的所有文件

一个老问题,但是总有人爱问,遍历一个文件夹下的所有文件,并输出文件信息. using System; using System.Collections.Generic; using System.ComponentModel;using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace IOTest { public partial class For

java读取某个文件夹下的所有文件

import java.io.FileNotFoundException;import java.io.IOException;import java.io.File; public class ReadFile {        public ReadFile() {        }        /**         * 读取某个文件夹下的所有文件         */        public static boolean readfile(String filepath) thro

用Java实现将多级文件夹下的所有文件统一放到一个文件夹中

每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了一个小工具. 以下代码只实现了把多级文件夹下的所有文件复制到一个文件夹中,如果需要指定复制文件的格式,可以在1111处添加一个判断.如果需要同时删除原文件夹可以在添加一个递归删除的方法. package Bao; import java.io.BufferedInputStream;import j

cocos2d-x 如何读取遍历文件夹下的所有文件 (简单明了/童少无欺)

比如我要遍历Resources/music下面所有的文件 导入头文件 #include <sys/stat.h> #include "dirent.h" #include "unistd.h" 实现代码 std::string filePath = FileUtils::getInstance()->fullPathForFilename("music"); CCLOG("%s",filePath.c_str

C/C++遍历Windows文件夹下的所有文件

因为文件夹中往往包含文件和文件夹.想要遍历所有的文件,必须遍历文件夹中所有的文件夹.很显然,这个描述满足递归的两个要素:(1)问题的规模在不断的缩小,且新问题的模式与旧问题相同.很显然文件夹中含有子文件夹同样需要遍历.(2)含有简单的终止条件,即遇到文件夹下再无文件夹停止. C++遍历文件夹下所有文件如下: int osmgpxPaser::GetAllgpxFilepathFromfolder(char* Path) { char szFind[MAX_PATH]; WIN32_FIND_DA