package com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.DateFormat;
import java.util.Date;
public class FileUtil {
//列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤
public static void list(File path){
if(!path.exists()){
System.out.println("文件不存在");
}else{
if(path.isFile()){
if(path.getName().toLowerCase().endsWith(".pdf")
||path.getName().toLowerCase().endsWith(".doc")
||path.getName().toLowerCase().endsWith(".chm")
||path.getName().toLowerCase().endsWith(".html")
||path.getName().toLowerCase().endsWith(".htm")){
System.out.println(path);
System.out.println(path.getName());
}
}else{
File[] files=path.listFiles();
for(int i=0;i<files.length;i++){
list(files[i]);
}
}
}
}
//拷贝一个目录或者文件到指定路径下,即把源文件拷贝到目标文件路径下(没运行)
//source 源文件
//target 目标文件路径
public static void copy(File source,File target){
File tarpath=new File(target,source.getName());
// IsDirectory判断是否为目录,IsDots判断是否为点
// --这个要说明一下,你用过Dos的话,就应该知道,每个目录下都有缺省的两个目录,名称分别为'.'和'..',
// 分别代表上一层目录和本层目录。因此,当我们在遍历目录下文件时,需要过滤掉这两个缺省目录。
if(source.isDirectory()){
//在Java中对文件进行操作时常常用到java.io.File.mkdir()和java.io.File.mkdirs()
//两个方法来创建一个目录(文件夹),这两个方法非常相似,都是无参数且返回值都为boolean类型的方法,
//都是用于创建指定路径名称对应的目录,但二者主要区别如下:
//java.io.File.mkdir():只能创建一级目录,且父目录必须存在,否则无法成功创建一个目录。
//java.io.File.mkdirs():可以创建多级目录,父目录不一定存在。
tarpath.mkdir();
File[] dir=source.listFiles();
for(int i=0;i<dir.length;i++){
copy(dir[i],tarpath);
}
}else{
try {
InputStream is=new FileInputStream(source);//用于读取文件的原始字节流
OutputStream os=new FileOutputStream(tarpath);//用于写入文件的原始字节的流
byte[] buf=new byte[1024];//存储读取数据的缓冲区大小
int len=0;
while((len=is.read(buf))!=-1){
os.write(buf, 0, len);
}
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
File file=new File("E:\\BaiduNetdiskDownload");
list(file);
Date myDate=new Date();
DateFormat df=DateFormat.getDateInstance();
System.out.println(df.format(myDate));
}
}
Java练手--列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤
最新推荐文章于 2024-05-06 13:48:06 发布