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);
}
文件递归方法
好处:不知道调用次数
构造函数不能用递归,递归可以没有返回值。