import java.io.File;
public class Testfile
{
  public static void main(String args[])
  {
   f_delete(args[0]); 
  }
  static void f_delete(String files)
 { 
   File fil = new File(files); 
   String[] f_list = fil.list();
    if(f_list.length !=0)
    {
    for(int i = 0;i<f_list.length;i++)
    {
    files = files +"\\"+f_list[i];
    File fil1 = new File(files);
    if(fil1.isDirectory()){
    f_delete(files);
    }
    else
    fil1.delete();
    }
    }
    else
    fil.delete();  
}
  
}

解决方案 »

  1.   

    问题1:files = files +"\\"+f_list[i];
    这条语句,当目录中有多个文件时,第n个文件files为目录\文件1\文件2\文件3...\文件n,所以会造成只有文件1被删除。应改为String temp = files + "/" + f_list[i]。问题2:
    if(f_list.length !=0)
    {
     ...  
    }
    else
    fil.delete();如果目录不为空,则不会执行fil.delete()这条语句。应该将else去掉。问题3:if或else后即使只有一条语句也要用{}括起来。