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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

各位大神,我用循环遍历deleteOnExit(),吧U盘删了,问题来了

删除完之后,U盘就不能用了,基本上插到电脑上之后,电脑不识别

有部分电脑可以识别U盘,但是U盘不显示储存空间。也不能格式化,不能存入东西

不知道是不是报废了,U盘是  台电32G  3.0 的

真的伤不起啊,刚买没多久的U盘。求各位大神给支个招  谢谢了

13 个回复

正序浏览
2333    做大了
回复 使用道具 举报
杨胤 来自手机 中级黑马 2015-6-26 11:41:13
12#
本帖最后由 杨胤 于 2015-6-27 10:20 编辑

插上u盘,点pc左下角的开始,在执行框键入diskpart,进到DOS后再键入list disk,看会不会显示u盘的信息。。
回复 使用道具 举报
啥都别想了,重新量产吧,
回复 使用道具 举报
这么凶的代码!、
回复 使用道具 举报
好高大上啊   
回复 使用道具 举报
雨弘米敖 发表于 2015-6-25 21:16
把你的代码贴出来让大家看看

下面代码可放心运行,已经注释 删除代码
如果感觉自己牛逼的,可以注释删除的代码打开运行一下,瞄准你的U盘  试一试,看看会不会坏

  1. package cn.h7u;

  2. import java.io.File;
  3. import java.io.FileWriter;
  4. import java.util.LinkedList;
  5. import java.util.TreeSet;

  6. /**
  7. * 可能存在BUG
  8. *
  9. * @author Administrotar
  10. *
  11. */
  12. public class DuBa {
  13.         public static void main(String[] args) throws Exception {
  14.                 File[] fileArray = File.listRoots(); // 获取到电脑中所有的盘符
  15.                 LinkedList<File> file = new LinkedList<File>(); // 建立File类型集合,供存储文件夹()对象使用
  16.                 TreeSet<File> allObj = new TreeSet<File>(); // 建立File类型的集合,供存储遍历到的所有文件和文件夹
  17.                 for(File overall : fileArray){                //遍历全盘的根目录
  18.                         File[] target = overall.listFiles(); // 获取(系统第7个盘符)此盘符下面所有的文件和文件夹对象
  19.                         // System.out.println(target); // 测试输出所有File对象数组地址
  20.                         // System.out.println("---------------------------------------");
  21.                         if (target != null) {
  22.                                 for (File z : target) { // 遍历所有(this)根目录下的File对象,target:目标文件和文件夹
  23.                                         if (z.isFile()) { // 判断是否为文件对象
  24.                                                 // z.deleteOnExit(); //删除此盘符下面的对象文件
  25.                                                 // System.out.println(z.getClass()); //检测是否为File对象,true
  26.                                                 allObj.add(z); // 把遍历到的文件对象添加到allObj的集合,为File类型对象
  27.                                                 // System.out.println(z); // 输出(this)此文件夹下的文件
  28.                                         } else if (!(z.isFile())) { // 遍历所有非文件对象(文件夹对象)
  29.                                                 // z.deleteOnExit(); //删除空文件夹(清理垃圾),为了优化第二次遍历到的文件夹为非空类型,输出错误
  30.                                                 allObj.add(z); // 把遍历到的文件夹添加到allObj集合中,为File类型对象
  31.                                                 file.add(z); // 把(this)此文件夹下的文件夹对象添加到File类型的集合list中,供下次遍历
  32.                                         }
  33.                                 }
  34.                         }
  35.                 }
  36.                 // System.out.println("-------------------");// 分隔符
  37.                 for (File folder : file) { // 遍历File类型的集合,此集合存入的是遍历所得到的文件夹对象,folder:文件夹
  38.                         // System.out.println(folder.getClass()); //检测是否为文件夹对象,true
  39.                         allObj.add(folder); // 把遍历到的文件夹对象添加到allObj集合中
  40.                         // System.out.println(folder); // 输出(this)此文件夹下面的文件夹对象
  41.                         // System.out.println(folder.length());
  42.                         // //输出文件夹的所占用的空间???????????错误,文件夹没有大小
  43.                 }
  44.                 // System.out.println("----------------------------");
  45.                 /*
  46.                  * for(File file2 : folder){ System.out.println(file2); }
  47.                  */
  48.                 while (!file.isEmpty()) { // 如果此集合中包含文件夹对象元素,则继续执行
  49.                         // System.out.println(file.getLast().getClass()); //测试数组取出的元素为对象
  50.                         File obj = file.removeFirst(); // file集合中第一个文件夹对象
  51.                         // System.out.println(obj); //打印测试的文件夹对象
  52.                         File[] temp = obj.listFiles(); // 把这个文件夹对象转换为数组
  53.                         if (temp != null) { // 判断这个文件夹对象的数组长度是否为0
  54.                                 // if(!(temp.length==0))
  55.                                 for (File folder2 : temp) {
  56.                                         if (folder2.isFile()) { // 判断是否为文件对象
  57.                                                 // z.deleteOnExit(); //删除此盘符下面的对象文件
  58.                                                 // System.out.println(z.getClass()); //检测是否为File对象,true
  59.                                                 allObj.add(folder2); // 把遍历到的文件添加到allObj的集合,为File类型对象
  60.                                                 // System.out.println(folder2); // 输出(this)此文件夹下的文件对象
  61.                                         } else if (!(folder2.isFile())) { // 遍历所有非文件对象(文件夹对象)
  62.                                                 // z.deleteOnExit();
  63.                                                 // //删除空文件夹(清理垃圾),为了优化第二次遍历到的文件夹为非空类型,输出错误
  64.                                                 allObj.add(folder2); // 把遍历到的文件夹添加到allObj集合中,为File类型对象
  65.                                                 file.add(folder2); // 把(this)此文件夹下的文件夹对象添加到File类型的集合list中,供下次遍历
  66.                                         }
  67.                                 }
  68.                         }
  69.                 }
  70.                 /*
  71.                  * File [] file.getLast();
  72.                  *
  73.                  * for(File z:folder.){ //遍历所有(this)根目录下的File对象,target:目标文件和文件夹
  74.                  * if(z.isFile()){ //判断是否为文件对象 //z.deleteOnExit(); //删除此盘符下面的对象文件
  75.                  * //System.out.println(z.getClass()); //检测是否为File对象,true
  76.                  * allObj.addLast(z); //把遍历到的文件添加到allObj的集合,为File类型对象
  77.                  * System.out.println(z); //输出(this)此文件夹下的文件 }else if(!(z.isFile())){
  78.                  * //遍历所有非文件对象(文件夹对象) //z.deleteOnExit();
  79.                  * //删除空文件夹(清理垃圾),为了优化第二次遍历到的文件夹为非空类型,输出错误 allObj.addLast(z);
  80.                  * //把遍历到的文件夹添加到allObj集合中,为File类型对象 file.addLast(z);
  81.                  * //把(this)此文件夹下的文件夹对象添加到File类型的集合list中 } }
  82.                  */
  83.                 System.out.println();
  84.                 System.out
  85.                                 .println("-----------输出所有遍历到的文件和文件夹对象----------------------------");
  86.                 // 检测输出所有(除空文件夹)遍历到的文件和文件夹
  87.                 // Collections.sort(allObj); //把allObj集合中的元素按自然顺序排序
  88.                 FileWriter writer = new FileWriter("C:\\Users\\test\\Desktop\\遍历的结果.txt"); // 创建文本写入对象
  89.                 for (File all : allObj) { // 遍历allObj集合中的元素对象
  90.                         System.out.println(all); // 输出allObj集合中的所有元素对象
  91.                         // System.out.println(all.getAbsolutePath().getClass()); //
  92.                         // 输出allObj集合中的所有元素对象的绝对地址,对象
  93.                         writer.write(all.getAbsolutePath()); // 把对象的绝对路径字符串写入到文本中
  94.                         writer.write("\r\n"); // 换行
  95.                         writer.flush();
  96.                 }
  97.                 // writer.write(allObj); //把对象的绝对路径字符串写入到文本中
  98.                 // writer.write("\r\n"); //换行
  99.                 System.out.println("对象:" + allObj.size()); // 返回此盘符下的对象总数
  100.         }
  101. }
复制代码



回复 使用道具 举报
志行 发表于 2015-5-26 11:12
你是在 水 贴吧      还有问题来了 不应该是    挖掘机技术哪家强吗????

你在水  还是我再水呀

没闲工夫 发水帖
回复 使用道具 举报

如果你坚持觉得楼上正解的话,我把代码 贴出来  你敢不敢在你电脑上运行一下
瞄准你的C盘  试一试

你硬盘 要是不坏,我天天倒立着走路
回复 使用道具 举报
大西洋 发表于 2015-5-26 08:17
deleteOnExit()
          在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

你知道还是我知道?
我电脑和U盘都没有问题,是java代码吧U盘自带的系统给删了

需要低格或者量产才能恢复U盘

但是找不到量产这个U盘闪存的对应 工具

所以U盘就毁了
回复 使用道具 举报
你是在 水 贴吧      还有问题来了 不应该是    挖掘机技术哪家强吗????
回复 使用道具 举报
楼上正解
回复 使用道具 举报
deleteOnExit()
          在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

这个方法只会操作文件和目录,对驱动和硬件不会产生影响~ 你的电脑硬件接口和U盘本身就有问题~
回复 使用道具 举报
。。。杯具呀。。呵呵。。乐一下。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马