java 对电脑的文件浏览(目录和文件)和删除操作
程序员文章站
2022-03-03 09:06:53
...
主要是用递归方式实现浏览文件目录下的所有的东西
public static void main(String[] args) {
//1.目录的获取
// 1)根目录
File[] fs=File.listRoots();
if(fs!=null)
{
System.out.println("当前系统有以下盘符");
for(File file:fs)
{
System.out.println(file.getPath()+"\t"+genSizeString(file.getTotalSpace())+"\t"+genSizeString(file.getUsableSpace()));
}
}
// 2)显示一个目录下的子目录(不包括孙目录)
// File f3=new File("C:Users");
// File[] fs3=f3.listFiles();
// if(fs3!=null)
// {
// for(File ff:fs3){
// if(ff.isFile())
// {
// System.out.println(ff.getPath()+"\t文件\t"+ff.length());
//
// }else{
// System.out.println(ff.getPath()+"\t目录\t");
// }
//
// }
// }
File f3=new File("F:\\show");
showALL(f3,1);
showDelete(f3);
}
//显示文件大小
private static String genSizeString(long size)
{
if((size/1024/1024/1024/1024)>0)
{
return size/1024/1024/1024/1024+"TB";
}else if(size/1024/1024/1024>0){
return size/1024/1024/1024+"GB";
}else if(size/1024/1024>0){
return size/1024/1024+"MB";
}else if(size/1024>0){
return size/1024+"KB";
}
return "";
}
//递归
private static void D(String file)
{
File f3=new File(file);
File[] fs3=f3.listFiles();
if(fs3!=null)
{
for(File ff:fs3){
if(ff.isFile())
{
System.out.println(ff.getPath()+"\t文件\t"+ff.length());
}else{
System.out.println(ff.getPath()+"目录");
D(ff.getPath());
}
}
}
}
//递归显示
private static void showALL(File f,int level)
{
long mtime =f.lastModified();
Date d=new Date(mtime);
DateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String mitimeString=df.format(d);
for(int i=1;i<level;i++)
{
System.out.print("\t");
}
if(f.isFile()) {
System.out.println(f.getName()+"\t文件\t"+genSizeString(f.length())+"\t"+mitimeString);
}else {
System.out.println(f.getName()+"\t目录\t"+"\t"+mitimeString);
File[] ff=f.listFiles();
if(ff!=null&&ff.length>0)
{
for(File fs:ff)
{
showALL(fs,level+1);
}
}
}
}
//递归删除 只删除文件
private static void showDelete(File f)
{
if(f.isDirectory())
{
File[] ff=f.listFiles();
if(ff!=null&&ff.length>0)
{
for(File fs:ff)
{
showDelete(fs);
}
}
}
System.out.println(f+"删除成功?"+f.delete());
}
推荐阅读