目录
JAVA 中级 / I/O / I/O系列教材 (一)- JAVA 的FILE类,以及常用方法
练习-遍历文件夹(非递归)
package file;
import java.io.File;
public class TestFile {
public static void main(String[] args) {
File f = new File("c:\\windows");
File[] fs = f.listFiles();
if(null==fs)
return;
long minSize = Integer.MAX_VALUE;
long maxSize = 0;
File minFile = null;
File maxFile = null;
for (File file : fs) {
if(file.isDirectory())
continue;
if(file.length()>maxSize){
maxSize = file.length();
maxFile = file;
}
if(file.length()!=0 && file.length()<minSize){
minSize = file.length();
minFile = file;
}
}
System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length());
System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length());
}
}
练习-遍历子文件夹(递归)
使用递归来进行文件夹的遍历。
package file;
import java.io.File;
public class TestFile {
static long minSize = Integer.MAX_VALUE;
static long maxSize = 0;
static File minFile = null;
static File maxFile = null;
//使用递归来遍历一个文件夹的子文件
public static void listFiles(File file){
if(file.isFile()){
if(file.length()>maxSize){
maxSize = file.length();
maxFile = file;
}
if(file.length()!=0 && file.length()<minSize){
minSize = file.length();
minFile = file;
}
return;
}
if(file.isDirectory()){
File[] fs = file.listFiles();
if(null!=fs)
for (File f : fs) {
listFiles(f);
}
}
}
public static void main(String[] args) {
File f = new File("c:\\windows");
listFiles(f);
System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length());
System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length());
}
}
for (File f : fs) f可能也是文件夹,继续递归下去。