1:获取文件信息的方法。
public class FileMethod {
public static void main(String[] args) {
File file = new File("E:\\wxy\\20-21vue\\npm.txt");
System.out.println(file.getPath());//获取路径,等于file.toString
System.out.println(file.toString());//等于getPath
System.out.println(file.getName());//返回文件或文件夹的结尾。
System.out.println(file.length());//返回文件的大小字节
File file2 = new File("npm.txt");
System.out.println(file2.getAbsolutePath());//获取当前路径下的绝对路径
}
}
E:\wxy\20-21vue\npm.txt
E:\wxy\20-21vue\npm.txt
npm.txt
152
E:\workspace\project0005\npm.txt
2:判断文件信息的方法
public class FileMethod2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("E:\\wxy\\20-21vue\\npm.txt");
if(file.exists()) {
System.out.println(file.isDirectory());
System.out.println(file.isFile());
}
}
}
3:创建文件,文件夹方法:
public class FileMethod3 {
//文件如果不存在,就会创建返回true,如果已经存在了,就不会创建,返回false。createNewFile只能创建文件
public static void main(String[] args) throws IOException {
File file = new File("E:\\wxy\\abc.txt");
boolean b = file.createNewFile();
System.out.println(b);
//mkdir() 创建单击文件夹,创建成功返回boolean,如果已经存在或者路径不存在返回false。
File file2 = new File("E:\\wxy\\abc");
boolean b2 = file2.mkdir();
System.out.println(b2);
//mkdirs() 创建多级文件夹
File file3 = new File("E:\\wxy\\aaa\\bbb");
boolean b3 = file3.mkdirs();
System.out.println(b3);
//可以删除文件,也可以删除文件夹。
//删除返回的是boolean,删除成功返回true,如果不存在,或者文件夹有内容返回false删除失败
boolean delete = file.delete();
System.out.println(delete);
}
}
4:遍历文件,文件夹
public class FileBianli {
public static void main(String[] args) {
//遍历下一级文件夹
File file = new File("E:\\图片");
String[] arr = file.list();//遍历文件
for(String filename:arr) {
System.out.println(filename);
}
//遍历下一级文件夹的绝对路径
File file2 = new File("E:\\wxy\\个人资料");
File[] arr2 = file.listFiles();//便利的是文件夹的绝对路径
for(File fn: arr2) {//增强for循环遍历
System.out.println(fn);
}
}
}
//csdn截图
//亿图
//思维导图
//E:\图片\csdn截图
//E:\图片\亿图
//E:\图片\思维导图
例1:递归遍历文件夹,打印文件夹下的文件路径。
public class FileBianli {
public static void main(String[] args) {
//遍历下一级文件夹
File file = new File("E:\\图片");
String[] arr = file.list();
for(String filename:arr) {
System.out.println(filename);
}
//遍历下一级文件夹的绝对路径
File file2 = new File("E:\\wxy\\个人资料");
File[] arr2 = file.listFiles();
for(File fn: arr2) {
System.out.println(fn);
}
}
}
E:\wxy\个人资料\介绍信.png
E:\wxy\个人资料\转正资料\PPT.pptx
E:\wxy\个人资料\转正资料\tukuppt-59ba831f1fd84.pptx
E:\wxy\个人资料\转正资料\摘要.docx
例2:递归查找某文件
public class SearchFile {
public static String findFile = "ALL.xlsx";
public static String path = "E:\\wxy\\整理资料";
public static void main(String[] args) {
File file = new File(path);
File[] filist = file.listFiles();
search(filist);
}
public static void search(File[] flist) {
for(File fn: flist) {
if(fn.isFile()) {
// System.out.println(fn.getName());
if(fn.getName().toString().equals(findFile)) {//file.getName()方法获取文件名称
//if(fn.toString().endsWith(findFile)) {//file。toString=file。getPath
System.out.println(fn);
return;
}
}else if(fn.isDirectory()) {
File[] filistD = fn.listFiles();
search(filistD);
}
}
}
}
E:\wxy\整理资料\05-26\ALL.xlsx//找到了文件路径
后续更新:
把文件直接传入更简单:
public class SearchFileNice {
public static String findFile = "ALL.xlsx";
public static String path = "E:\\wxy\\整理资料";
public static void main(String[] args) {
File filep = new File(path);
search(filep);
}
public static void search(File f) {
File[] filist = f.listFiles();
for(File fn: filist) {
if(fn.isFile()) {
// System.out.println(fn.getName());
if(fn.getName().toString().equals(findFile)) {//file.getName()方法获取文件名称
//if(fn.toString().endsWith(findFile)) {//file。toString=file。getPath
System.out.println(fn);
return;
}
}else if(fn.isDirectory()) {
search(fn);
}
}
}
}
加个过滤器查找速度更加快。
public class FileFilterImp implements FileFilter{
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
if(pathname.isDirectory()) {
return true;
}
return pathname.getName().toLowerCase().endsWith(".xlsx");
}
}
public class SearchFileNice2 {
public static String findFile = "ALL.xlsx";
public static String path = "E:\\wxy";
public static void main(String[] args) {
File filep = new File(path);
search(filep);
}
public static void search(File f) {
File[] filist = f.listFiles(new FileFilterImp());//在这里添加了实现类对象,进行过滤
for(File fn: filist) {
if(fn.isFile()) {
// System.out.println(fn.getName());
if(fn.getName().toString().equals(findFile)) {//file.getName()方法获取文件名称
//if(fn.toString().endsWith(findFile)) {//file。toString=file。getPath
System.out.println(fn);
return;
}
}else if(fn.isDirectory()) {
search(fn);
}
}
}
}