我有一个名为“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
答案 0 :(得分:1)
从文档(Java API)我得到以下内容:
public boolean delete()
删除此抽象路径名表示的文件或目录。如果此路径名表示目录,则该目录必须为空才能被删除。
请注意,Files类定义了删除方法,以便在无法删除文件时抛出IOException。这对于错误报告和诊断无法删除文件的原因非常有用。
要获得进一步的帮助,你应该使用java.nio.file.Files它有方法walkFileTree并删除你可以使用这些方法删除目录下的所有文件。
答案 1 :(得分:0)
试试这个
File file = new File("C:\\Example");
String[] myFiles;
if(file.isDirectory()){
myFiles = file.list();
for (int i=0; i<myFiles.length; i++) {
File myFile = new File(file, myFiles[i]);
myFile.delete();
}
}