File dir = new File("c:");
File file = new File("D:\\a\\b.jnt");
//D:\coreJavaWsp\coreJava\src\com\itany\coreJava\day17\TestFile01.java
// System.out.println(f.getAbsolutePath());
// windows \ linux /
String path = "a";
String fileName = "b.txt";
//a/b.txt
//The system-dependent default name-separator character
// 系统默认的文件名分隔符
String filePath = path + File.separator + fileName;
System.out.println(dir.isDirectory());
// 判断是否目录System.out.println(file.isDirectory());
System.out.println(dir.isFile());
// 判断是否文件
System.out.println(file.isFile());
// 凡是你能想到的 都有
//mkdir a/b/c
// System.out.println( dir.mkdir());;
//mkdir -p a/b/c
// System.out.println(dir.mkdirs());;
// 目录或者文件
//如果用delete删除目录,该目录一定要是 空目录
// System.out.println(dir.delete());;
// dir.canRead()
// dir.canExecute()
// dir.canWrite()
// 判断文件或者目录是否存在
// System.out.println(dir.exists());;
File newFile = new File("d://a/c.jnt");
//判断目录是否存在
// 如果不存在 创建目录
if(!newFile.getParentFile().exists())
{
newFile.getParentFile().mkdirs();//创建父文件夹
}
// mv:和move命令一样
file.renameTo(newFile);//不同父文件夹此操作类似于剪切操作!同父文件夹就是重命名
String[] fileNames = dir.list();//返回值是string类型的数组,这里返回的是文件名
for (String s : fileNames)
{
System.out.println(s);
}
System.out.println("-----------------------");
File[] files = dir.listFiles();//这里返回的是文件数组
for (File fs : files)
{
System.out.println(fs.getName());//对每个文件取文件名的操作
}
System.out.println("=============================");
// fileNames = dir.list();
// for (String s : fileNames)
// {
// if(s.endsWith(".rar"))
// {
// System.out.println(s);
// }
// }
fileNames = dir.list(new FilenameFilter()//FilenameFilter是文件名的过滤器
{
@Override
public boolean accept(File dir, String name)//文件和文件夹的参数,如果是文件就用第一个参数,否则相反
{
return name.endsWith(".rar");//这里匿名内部类的作用是,遍历的同时进行筛选,提高效率,节省资源
}
});
for (String temp : fileNames)
{
System.out.println(temp);
}
// file.createNewFile()
File f1 = file.getAbsoluteFile();
// 获取文件的绝对路径
File f2 = new File(file.getAbsolutePath());
System.out.println(f1.equals(f2));
System.out.println(dir.getFreeSpace());//获取可用内存空间的大小