技术开发 频道

Java:一失足成千古恨

  【IT168 技术】经过一个多月的Java学习,我们慢慢深入了解了Java中的一些比较高级的方法!但这些方法在你调试的时候一定要慎重!!不要等待失去了整个硬盘,才后悔莫及!!! 如果你在编程的时候多长个心眼,这些小的错误是可以避免的!!!

  下面我们来看一下一个让人很崩溃的错误,这个错误让我感到不可思议!!代码如下:

import java.io.File;

public class KillBackServer {

public static void main(String[] args){
  File f
= new File("C:\\");
  fun(f);
}

//定义一个静态函数,用来实现对一盘文件的遍历
public static void fun(File f)
    {
  
if(f.isDirectory())
    {
      File file[]
= f.listFiles();
      try
      {
        
for(int i = 0 ; i <file.length ; i++)
        {
             fun(file[i]);
        }
      }
             catch(Exception e){}
    }
  
else
   {
        
if("我是病毒.exe".equals(f.getName()))                                            
               System.out.println(f);
              
//仅仅当程序找到"我是病毒.exe"的 时候才执行这一句代码                            
              
//f.delete();                                                  
               System.out.println(
"该病毒已被查杀");}  
               System.out.println(f.getPath()
+ "***********************");                    
    }
  
}

}

  大家一定要注意红色字体的代码!!!我之所以注释了,就是怕直接复制我的代码,然后运行……

  如果这样后果你是知道的……

  本来这段代码是用来扫描C盘,找到"我是病毒.exe"文件,并把它删除,判断一个文件名,用的是equals这是对的!!!

  错就错在:if()判断,大家都明白了吧!

  希望大家以后不要因为犯了这个低级错误,而把自己的硬盘给了格了= = |||

  其实,有很多方法可以避免这种错误!!!比如,你可以在f.delete(); 后面加上一句打印语句,这样的话,在你测试的时候就会发现,原来if语句后面少一个大括号……

0
相关文章