我有一个名为“madhura”的目录,我正在尝试删除它。目录“madhura”包含另一个目录“anyname”和一个文本文件。“anyname”也包含一个目录。我编写的代码没有给出错误,但是没有删除任何内容。
请帮我解决这个问题
代码:
package testjava;
import java.io.File;
import java.io.IOException;
public class DeleteDirectory {
public static void main(String args[])
{
File f = new File("C:\\madhura");
try {
deleteDirectory(f.list());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void deleteDirectory(String[] path) throws Exception
{
System.out.println("Inside delteDirectory");
int i=0;
int count = path.length;
System.out.println(path.length);
while(i<count)
{
File f = new File(path[i]);
System.out.println("file "+f+" isdiretory "+f.isDirectory());
if(f.isDirectory())
{
System.out.println("Inside f.isdirectory");
deleteDirectory(f.list());
f.delete();
}
else{
System.out.println("deleting "+f);
System.out.println(f.delete());
}
i++;
}
}
}
输出:
Inside delteDirectory
2
file anyname isdiretory false
deleting anyname
false
file New Text Document.txt isdiretory false
deleting New Text Document.txt
false
最佳答案
从文档(Java API)我得到以下内容:
公共(public) boolean 删除()
删除此抽象路径名表示的文件或目录。如果此路径名表示目录,则该目录必须为空才能删除。
请注意,Files 类定义了当无法删除文件时抛出 IOException 的删除方法。这对于错误报告和诊断文件无法删除的原因非常有用。
要获得进一步的帮助,您应该使用java.nio.file.Files,它有方法walkFileTree和delete,您可以使用这些方法删除目录下的所有文件。
关于java - 为什么 file.delete() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23737528/