1、创建File对象的几种方式
import java.io.File;
public class MyFile {
public static void main(String[] args) {
File file1 = new File("a.txt"); // 相对路径
File file2 = new File("E:\image\1.jpg"); // 绝对路径
File file3 = new File("E:\image");
// getPath():获取构造方法的参数
System.out.println(file1.getPath());
System.out.println(file2.getPath());
System.out.println(file3.getPath());
}
}
输出:
a.txt
E:image1.jpg
E:image
由于我使用的是eclipse,这里的相对路径指的是java工程目录,就是和src平级的目录。getPath()方法获取的是构造方法的参数,传什么获取什么。
import java.io.File;
public class MyFile {
public static void main(String[] args) {
String parentDir = "E:\image"; // 父目录
String childFile = "1.jpg"; // 子文件
File file = new File(parentDir, childFile); // 根据父目录和子文件创建File对象
String childDir = "aaa"; // 子目录
File dir = new File(parentDir, childDir); // 根据父目录和子目录创建File对象
System.out.println(file.getName()); // getName()获取文件名
System.out.println(dir.getName()); // getName()获取目录名
}
}
输出:
1.jpg
aaa
getName()方法获取文件名,如果是个目录,就输出目录名。
import java.io.File;
public class MyFile {
public static void main(String[] args) {
File parentFile = new File("E:\image");
String childFile = "1.jpg";
//根据父File对象和子文件(或者子目录)创建File对象
File file = new File(parentFile,childFile);
System.out.println(file.getName());
}
}
输出:
1.jpg
2、常用方法介绍
exists() 判断文件是否存在,存在true,否则false getName() 获取文件名或者目录名 getAbsolutePath() 获取文件或者目录的绝对路径 getPath() 获取构造方法传入的路径 length() 获取文件的字节个数 lastModified() 获取文件最后修改时间,返回1970-1-1 00:00:00到最后修改时间的毫秒数 createNewFile() 如果不存在此文件,则创建,否则不创建 mkdir() 如果此单级目录不存在,则创建,否则不创建。 mkdirs() 如果此多级或者单级目录不存在,则创建,否则不创建 delete() 删除文件或者目录,如果是目录不为空,则删除失败 renameTo(file) 文件重命名,路径相同就是改名,路径不同就是剪贴并新建文件 list() 获取当前目录下的所有文件或者文件夹名称,返回String数组 listFiles() 获取指定目录下的所有文件或者文件夹,返回File数组 |
3、案例1---获取指定目录下的jpg文件
import java.io.File;
public class MyFile {
public static void main(String[] args) {
File file= new File("E:\image");
File[] listFiles = file.listFiles();
for (File f : listFiles) {
if(f.isFile() && f.getName().endsWith(".jpg")) {
System.out.println(f.getAbsolutePath());
}
}
}
}
输出:
E:image1.jpg
E:image2.jpg
E:image222.jpg
E:imageaaa.jpg
E:image桌面.jpg
4、案例2---获取指定目录以及子目录下所有文件
import java.io.File;
public class MyFile {
public static void main(String[] args) {
File file = new File("E:\test");
printFile(file,"");
}
public static void printFile(File file, String str) {
File[] listFiles = file.listFiles();
for (File subFile : listFiles) {
if(subFile.isDirectory()) {
System.out.println(str + ">" + subFile.getName());
printFile(subFile,str + " ");
}
else {
System.out.println(str + ">" + subFile.getName());
}
}
}
}
输出:
>123.txt
>aaa
>vvv.docx
>xxx.xlsx
>bbb
>eee
>zzz
>paper.pptx
>资料.txt