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();
}
}
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();
}
}
这条语句,当目录中有多个文件时,第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后即使只有一条语句也要用{}括起来。