File
三种常用构造器
String path = "D:/aa";
File file = new File(path);
File file1 - new File(path,"bb");
File file2 = new File(file."cc")
mkdir()和mkdirs、exists
String path = "D:/aa/bb";
File file = new File(path);
//mkdir只会创建最后一个,也就是bb文件夹
boolean mkdir = file.mkdir();
//mkdirs创建文件夹。会把路径中不存在的也创建出来
boolean mkdirs = file.mkdirs();
//exists()判断资源是否存在
boolean exists = file.exists();
createNewFile()
String path = "D:/aa//bb";
File file = new File(path,a.txt);
//createNewFile()创建一个空文件,要求所在目录必须存在,再次创建同名不会覆盖,只会返回false
boolean newFile = file.createNewFile();//会抛出IOException异常
delete()
//delete() 只会删除文件和空文件夹,
String path = "D:/aa/bb";
File file = new File(path,a.txt);
boolean delete = file.delete();
isFile()
String path = "D:/aa//bb//a.txt";
File file = new File(path);
//isFile()判断是不是文件
boolean file1 = file.isFile();//true
getName()
String path = "D:/aa/bb/a.txt";
File file = new File(path);
//getName()获取文件路径中最后一个名字
String name = file.getName();
System.out.println(name);//a.txt
getAbsolutePath()和getPath()
String path = "/aa/bb/a.txt";
File file = new File(path);
//getAbsolutePath()获取全路径,磁盘位置
String absolutePath = file.getAbsolutePath();
System.out.println(absolutePath);//D:\aa\bb\a.txt
//getPath()创建文件时的路径
String path1 = file.getPath();
System.out.println(path1);//\aa\bb\a.txt
list()和listFiles()
String path = "D:/file";
File file = new File(path);
//list()返回文件夹中资源名称
String[] list = file.list();
System.out.println(Arrays.toString(list));//[a, a.txt, ad, sda.txt]
//listFiles()返回文件中资源对象
File[] files = file.listFiles();
for (File f : files) {
System.out.println(f);
}//D:/file/file/a
//D:/file/file/a.txt
//D:/file/file/ad
//D:/file/file/sda.txt
经典算法题
需求:把一个文件夹内的文件和文件夹全部打印出来,并且分层显示和标注是文件夹还是文件
import java.io.File;
class Digui {
public static void main(String[] args) {
String path = "C:\\Users\\shenl\\Desktop\\file";
int count = 0;
File file = new File(path);
test(file,count);
}
public static void test(File file,int count){
File[] files = file.listFiles();
if(files!=null){
for (File file1 : files) {
for (int i = 0; i < count; i++) {
//用转义符分层
System.out.print("\t");
}
//判断是文件还是文件夹
if (file1.isFile()) {
System.out.println(file1.getName() + "-->文件");
} else {
System.out.println(file1.getName() + "-->文件夹");
}
test(file1,count+1);
}
}
}
}