递归显示/删除文件
public class Demo1 {
public static void main(String[] args) {
//listDir(new File("d:\\aaa"),0);
deleteList(new File("c:\\"));
}
public static void listDir(File dir,int level) {
System.out.println(getSeprator(level)+dir.getAbsolutePath());
level++;
File[] files = dir.listFiles();
if (files != null && files.length > 0) {
for (File file : files) {
if (file.isDirectory()) {
listDir(file,level);
}else{
System.out.println(getSeprator(level)+file.getAbsolutePath());
}
}
}
}
public static String getSeprator(int level){
StringBuilder sb=new StringBuilder("|");
for(int i=0;i<level;i++){
sb.append("_____");
}
return sb.toString();
}
//递归删除
public static void deleteList(File dir){
File[] files = dir.listFiles();
if(files!=null&&files.length>0){
for (File file : files) {
if(file.isDirectory()){
deleteList(file);
}else{
System.out.println(file.getAbsolutePath()+"---删除结果:"+file.delete());
}
}
}
//目录删除
System.out.println(dir.getAbsolutePath()+"---删除结果:"+dir.delete());
}
}
文件的操作
public class FileOperate {
public static void main(String[] args) throws Exception {
//(1)创建文件
File file=new File("d:\\aaa.txt");
if(!file.exists()){
boolean b=file.createNewFile();
System.out.println("创建结果:"+b);
}else{
System.out.println("文件已存在");
}
//(2)删除文件
//2.1直接删除
// boolean b2=file.delete();
// System.out.println("删除结果:"+b2);
//2.2JVM删除
// Thread.sleep(5000);
// file.deleteOnExit();
//(3)获取信息
System.out.println("文件长度:"+file.length());
System.out.println("文件名称:"+file.getName());
System.out.println("文件绝对路径:"+file.getAbsolutePath());
System.out.println("规范路径:"+file.getCanonicalPath());
System.out.println("文件路径:"+file.getPath());
System.out.println("文件父目录:"+file.getParent());
System.out.println("文件最后一次修改:"+new Date(file.lastModified()).toLocaleString());
//(4)判断
System.out.println("是否存在:"+file.exists());
System.out.println("是否只读:"+file.canWrite());
System.out.println("是否隐藏:"+file.isHidden());
System.out.println("是不是文件:"+file.isFile());
System.out.println("是不是绝对路径:"+file.isAbsolute());
//(5)修改名称: (具有剪切的功能)
file.renameTo(new File("zhangsan.txt"));
}
}
文件夹的操作
public class DirectoryOperate {
public static void main(String[] args) throws Exception{
//1创建文件夹
File dir=new File("d:\\aaa\\bbb\\ccc");
if(!dir.exists()){
// dir.mkdir();//创建单级目录
boolean b=dir.mkdirs();//创建多级目录
System.out.println("创建结果:"+b);
}else{
System.out.println("目录已经存在");
}
//2删除
//2.1直接删除:只删除最里层空目录
// boolean b2=dir.delete();
// System.out.println("删除结果:"+b2);
//2.2jvm删除
// dir.deleteOnExit();
//3获取信息
System.out.println("获取路径:"+dir.getPath());
System.out.println("获取绝对路径:"+dir.getAbsolutePath());
System.out.println("获取名称:"+dir.getName());
System.out.println("规范名称:"+dir.getCanonicalPath());
//4判断
System.out.println("是否存在:"+dir.exists());
System.out.println("是否隐藏:"+dir.isHidden());
System.out.println("是不是文件夹:"+dir.isDirectory());
//5重命名
boolean b3=dir.renameTo(new File("d:\\aaa\\bbb\\hello"));
//6获取目录的子目录和文件
File dir2=new File("d:\\mywork");
System.out.println("------------d:\\mywork--------------");
// String[] list = dir2.list();
// for (String s : list) {
// System.out.println(s);
// }
// File[] files = dir2.listFiles();
// for (File file : files) {
// System.out.println(file.toString());
// }
//获取目录下的.pptx
System.out.println("-------FilenameFilter-------");
// String[] files=dir2.list(new FilenameFilter() {
// @Override
// public boolean accept(File dir, String name) {
// if(name.endsWith(".pptx")){
// return true;
// }
// return false;
// }
// });
File[] files=dir2.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(".pptx")){
return true;
}
return false;
}
});
for (File file : files) {
System.out.println(file);
}
//获取根目录
System.out.println("--------获取根目录-------");
File[] roots = File.listRoots();
for (File root : roots) {
System.out.println(root);
}
}
}