java - 为什么 file.delete() 不起作用?

标签 java file

我有一个名为“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/

相关文章:

c - 在C中执行以下操作的方法是什么?

javascript - Python Mechanize 上传

java - 奇数节点总和与偶数节点总和的二叉树差异

java - 如何交错列表

Java 从 JSON 文件导入 JTable

python - 基本的 Python 文件搜索和 I/O

java - PushbackReader 没有 EOF?

java - 从外部 Jar 文件内部读取文件?

java - Spring Boot 安全性无法正常工作

java - Spring Boot 与 @PostConstruct 的集成测试取决于 @Before 部分