黑马程序员技术交流社区

标题: Java删除不了Windows的隐藏文件,就设置为未隐藏 [打印本页]

作者: 黄奕豪    时间: 2012-6-3 06:37
标题: Java删除不了Windows的隐藏文件,就设置为未隐藏
不知道大家实验过没,我新建了个父文件夹,然后在父文件夹里面搞了个隐藏子文件夹和其他文件,然后父文件夹删不了,隐藏的子文件夹也删不了,父文件夹里面的其他文件删光了,但是重点不是这个~~~重点是:隐藏子文件夹被设置为未隐藏了~~~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. }
复制代码

作者: 胡团乐    时间: 2012-6-3 06:53
不错不错 学习了
作者: 李保成    时间: 2012-6-3 07:38
个人是这么理解为啥不能删除隐藏文件,因为在java中包括c#中delete它是只能删除非只读文件,这时候如果想删除的话,需要改变一下该文件的权限,将只读去掉,然后再进行删除。
Runtime.getRuntime().exec("cmd /c attrib "+文件路径+文件名+" -r -a -s -h");
System.out.println("文件: "+文件路径+文件名+" 已去除只读属性!");




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2