黑马程序员技术交流社区
标题:
Java删除不了Windows的隐藏文件,就设置为未隐藏
[打印本页]
作者:
黄奕豪
时间:
2012-6-3 06:37
标题:
Java删除不了Windows的隐藏文件,就设置为未隐藏
不知道大家实验过没,我新建了个父文件夹,然后在父文件夹里面搞了个隐藏子文件夹和其他文件,然后父文件夹删不了,隐藏的子文件夹也删不了,父文件夹里面的其他文件删光了,但是重点不是这个~~~重点是:隐藏子文件夹被设置为未隐藏了~~~Java如此神奇?上实验代码
/*
删除带有目录的文件夹,删除原理,先把文件夹里面的内容删掉,才能删文件夹,
Java删除不走回收站,删了就没了,要谨慎
*/
import java.io.*;
class DeleteDir
{
public static void main(String[] args)
{
File file = new File("D:\\新建文件夹");
deleteDir(file);
}
public static void deleteDir(File f)
{
File[] files = f.listFiles();
for (int x = 0;x<files.length ;x++ )
{
if ((!files[x].isHidden())&&files[x].isDirectory())//记得判断非隐藏
{
deleteDir(files[x]);
}
else
{
if(files[x].delete())
System.out.println("删除"+files[x].toString()+"文件,成功!");
else
System.out.println("删除"+files[x].toString()+"文件,失败了~~~~~!");
}
}
if(f.delete())
System.out.println("删除"+f.toString()+"文件夹,成功!");
else
System.out.println("删除"+f.toString()+"文件夹,失败了~~~~~!");
}
}
复制代码
作者:
胡团乐
时间:
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