A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

不知道大家实验过没,我新建了个父文件夹,然后在父文件夹里面搞了个隐藏子文件夹和其他文件,然后父文件夹删不了,隐藏的子文件夹也删不了,父文件夹里面的其他文件删光了,但是重点不是这个~~~重点是:隐藏子文件夹被设置为未隐藏了~~~Java如此神奇?上实验代码

  1. /*
  2.         删除带有目录的文件夹,删除原理,先把文件夹里面的内容删掉,才能删文件夹,
  3.         Java删除不走回收站,删了就没了,要谨慎
  4. */
  5. import java.io.*;
  6. class DeleteDir
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 File file = new File("D:\\新建文件夹");
  11.                 deleteDir(file);
  12.         }
  13.         public static void deleteDir(File f)
  14.         {               
  15.                 File[] files = f.listFiles();
  16.                 for (int x = 0;x<files.length ;x++ )
  17.                 {
  18.                         if ((!files[x].isHidden())&&files[x].isDirectory())//记得判断非隐藏
  19.                         {
  20.                                 deleteDir(files[x]);
  21.                         }
  22.                         else
  23.                         {
  24.                                 if(files[x].delete())
  25.                                         System.out.println("删除"+files[x].toString()+"文件,成功!");
  26.                                 else
  27.                                         System.out.println("删除"+files[x].toString()+"文件,失败了~~~~~!");
  28.                         }
  29.                 }
  30.                 if(f.delete())
  31.                         System.out.println("删除"+f.toString()+"文件夹,成功!");
  32.                 else
  33.                         System.out.println("删除"+f.toString()+"文件夹,失败了~~~~~!");
  34.         }
  35. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 很给力!

查看全部评分

2 个回复

倒序浏览
不错不错 学习了
回复 使用道具 举报
个人是这么理解为啥不能删除隐藏文件,因为在java中包括c#中delete它是只能删除非只读文件,这时候如果想删除的话,需要改变一下该文件的权限,将只读去掉,然后再进行删除。
Runtime.getRuntime().exec("cmd /c attrib "+文件路径+文件名+" -r -a -s -h");
System.out.println("文件: "+文件路径+文件名+" 已去除只读属性!");

评分

参与人数 1黑马币 +10 收起 理由
黄奕豪 + 10 不隐藏了呢?怎么实现的?

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马