package _1File类;
import java.io.*;
public class FileDemo {
public static void main(String[] args) throws IOException
{
// 1.创建
//testCreate();
// 2. 删除
// testDel();
// 3. 重命名
// testMove();
// 4. 信息
showInfo();
}
private static void showInfo() {
//boolean canExecute()
// 测试应用程序是否可以执行此抽象路径名表示的文件。
//boolean canRead()
// 测试应用程序是否可以读取此抽象路径名表示的文件。
//boolean canWrite()
// 测试应用程序是否可以修改此抽象路径名表示的文件。
// File getAbsoluteFile()
// 返回此抽象路径名的绝对路径名形式。
//String getAbsolutePath()
// 返回此抽象路径名的绝对路径名字符串。
//File getCanonicalFile()
// 返回此抽象路径名的规范形式。
//String getCanonicalPath()
// 返回此抽象路径名的规范路径名字符串。
//long getFreeSpace()
// 返回此抽象路径名指定的分区中未分配的字节数。
//String getName()
// 返回由此抽象路径名表示的文件或目录的名称。
//String getParent()
// 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
//File getParentFile()
// 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
//String getPath()
// 将此抽象路径名转换为一个路径名字符串。
//long getTotalSpace()
// 返回此抽象路径名指定的分区大小。
//long getUsableSpace()
// 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。
// String[] list()
// 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
//String[] list(FilenameFilter filter)
// 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
//File[] listFiles()
// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
//File[] listFiles(FileFilter filter)
// 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
//File[] listFiles(FilenameFilter filter)
// 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
File f1 = new File("e:\\igeek");
System.out.println(f1.length());
System.out.println(f1.lastModified());
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
File f2 = new File("e:\\igeek\\a1.txt");
System.out.println(f2.length());
System.out.println(f2.lastModified());
System.out.println(f2.isDirectory());
System.out.println(f2.isFile());
System.out.println("e:\\igeek下的子文件里列表:");
// f1.list() 返回的是 f1路径下所有文件及文件夹的文件名的数组
for(String fn:f1.list())
{
System.out.println(fn);
}
System.out.println("e:\\igeek下的子文件里列表:");
// f1.listFiles() 返回的是 f1路径下所有文件及文件夹的文件对象的数组
for(File file:f1.listFiles())
{
System.out.println(file);
System.out.println("文件大小"+file.length());
}
}
private static void testMove() {
// 如果同文件夹下 就是重命名
File f1 = new File("e:\\igeek\\1.txt");
File f2 = new File("e:\\igeek\\a1.txt");
System.out.println(f1.renameTo(f2)?"重命名成功":"失败");
// 如果不同文件夹下 就是移动
File f1 = new File("e:\\igeek\\2.txt");
File f2 = new File("e:\\2.txt");
System.out.println(f1.renameTo(f2)?"移动成功":"失败");
}
private static void testDel()
{
boolean delete()
// 删除此抽象路径名表示的文件或目录。
// 删除文件
File f1 = new File("e:\\igeek.txt");
System.out.println(f1.delete()?"删除成功":"删除失败");
// 删除文件夹
File f1 = new File("e:\\igeek3");
System.out.println(f1.delete()?"删除成功":"删除失败");
// 如果路径的文件夹或者文件不存在 删除失败
// 如果文件夹有文件 删除失败,空文件夹才能删除成功
}
private static void testCreate() throws IOException
{
// 创建目录
boolean mkdir()
// 创建此抽象路径名指定的目录。
boolean mkdirs()
// 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
File f1 = new File("e:\\igeek");
f1.mkdir();
File f2 = new File("e:\\igeek\\abc");
f2.mkdir();
File f3 = new File("e:\\igeek2\\abc");
f3.mkdir();// 没有创建成功 因为igeek2不存在
File f4 = new File("f:\\igeek3\\abc");
System.out.println(f4.mkdirs()?"创建成功":"创建失败");// 如果父目录没有创建也会创建好
// 创建文件
boolean createNewFile()
// 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
File f5 = new File("igeek2/igeek.txt");// 相对路径
System.out.println(f5.createNewFile()?"创建成功":"创建失败");
File f6 = new File("e:\\igeek.txt");
System.out.println(f6.createNewFile()?"创建成功":"创建失败");
// File.separator 路径的分隔符
// windows \
// Linux /
File f7 = new File("igeek2");
f7.mkdir();
File f8 = new File("igeek2"+File.separator+"igeek2.txt");
System.out.println(f8);// igeek2/igeek2.txt
f8.createNewFile();
}
}