File类的常用使用方法

createNewFile,mkdirs,mkdir

File dir1 = new File("aaa");//File创建目录
System.out.println(dir1.exists());
System.out.println(dir1.createNewFile());//创建一个文件
File d = new File("\\bbb/ccc");
System.out.println(d.mkdirs());//创建多个文件夹
System.out.println(d.mkdir());//创建一个文件夹

delete

使用delete方法删除不会移到回收站中,直接删除。删除文件夹必须删的是空文件夹。

File f = new File("aaa");
System.out.println(f.delete());

renameTo 重命名

如果路径相同,就是重命名。如果路径不同,那就是剪切加重命名。

File f = new File("aaa");
f.createNewFile();
File f2 = new File("C://bbb.txt");
System.out.println(f.renameTo(f2));

判断功能

boolean isAbsolute()
测试这个抽象路径名是否是绝对的。
boolean isDirectory()
测试此抽象路径名表示的文件是否为目录。
boolean isFile()
测试此抽象路径名表示的文件是否为普通文件。
boolean isHidden()
测试此抽象路径名命名的文件是否为隐藏文件。
boolean setReadable(boolean readable)
设置是否可读(Windows下所有文件都是可读的,设置为false也还是可读。Linux下可以设置是否可读)
boolean setReadOnly()
标记由此抽象路径名命名的文件或目录,以便只允许读取操作。

获取功能

public string getAbsolutePath():获取绝对路径
public string getPath():获取相对路径
public string getName():获取名称
public long length():获取长度.(获取的是文件大小得到的是字节数,获取的是文件夹大小,得到的是0)
public long lastModified():获取最后一次的修改时间,毫秒值(转换成时间值可以用Date(毫秒值)来转换)
public string[] list():获取指定目录下的所有文件或者文件夹的名称数组
public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

File dir = new File("C:\\Drcom");
String[] l1= dir.list();//只是为了获取名字
for (String arr:l1) {
    System.out.println(arr);
}

File[] fl = dir.listFiles();//为了获取file对象,实现各种操作
for (File f:fl) {
    if(f.getName().endsWith(".txt")){
        System.out.println(f);
    }
}

使用过滤器选择特定条件的文件:

File dir = new File("C:\\AppData\\Roaming\\miniconfig");
File[] l1= dir.listFiles(new FileFilter() {
    @Override
    public boolean accept(File pathname) {
        if (pathname.getName().endsWith(".ini")){
            return true;
        }
        return false;
    }
});
for (File f:l1) {
    System.out.println(f);
}

文件递归方法

好处:不知道调用次数
构造函数不能用递归,递归可以没有返回值。

猜你喜欢

转载自blog.csdn.net/weixin_43580841/article/details/107760923