Can';不删除java中的文件?

Can';不删除java中的文件?,java,Java,我正在尝试删除文件夹中的所有文件:- import java.io.*; public class AddService { public static void main(String args[]){ File folder=new File("inputs"); File[] listOfFiles=folder.listFiles(); for(File file:listOfFiles){ i

我正在尝试删除文件夹中的所有文件:-

    import java.io.*;
public class AddService {   
    public static void main(String args[]){
        File folder=new File("inputs");
        File[] listOfFiles=folder.listFiles();
        for(File file:listOfFiles){
            if(file.delete())
                System.out.println("File deleted");
            else
                System.out.println("File not deleted");
        }
    }
}
我收到响应“文件未删除”,并且文件未被删除。我的代码怎么了

  • 尝试在下面的语句中给出完整路径:“文件夹=新文件(“输入”);”
  • 使用try-catch块并打印异常(如果有)
  • 尝试在下面的语句中给出完整路径:“文件夹=新文件(“输入”);”
  • 使用try-catch块并打印异常(如果有)

  • 你的代码没有错,只是你应该给出完整的路径

    尝试以下操作:
    File folder=新文件(“C:\\inputs”)


    而不是这一行:
    File folder=新文件(“输入”)

    除了应该给出完整路径外,代码没有任何错误

    尝试以下操作:
    File folder=新文件(“C:\\inputs”)


    而不是这一行:
    File folder=新文件(“输入”)

    您尚未提供文件夹的完整路径。 还要注意使用正斜杠

    try{
            File folder=new File("C:/xxxx/xxxx/xxxx/inputs");
            File[] listOfFiles=folder.listFiles();
            for(File file:listOfFiles){
                if(file.delete())
                    System.out.println("File deleted");
                else
                    System.out.println("File not deleted");
            }
    }
    catch(Exception e)
    {
        System.out.println(e.printStackTrace());
    }
    

    对于包含引发异常的方法的代码,请始终使用try catch

    您尚未给出文件夹的完整路径。 还要注意使用正斜杠

    try{
            File folder=new File("C:/xxxx/xxxx/xxxx/inputs");
            File[] listOfFiles=folder.listFiles();
            for(File file:listOfFiles){
                if(file.delete())
                    System.out.println("File deleted");
                else
                    System.out.println("File not deleted");
            }
    }
    catch(Exception e)
    {
        System.out.println(e.printStackTrace());
    }
    

    对于包含抛出异常的方法的代码,请始终使用try catch

    无法删除文件的原因有很多;它可能不存在,它可能是一个非空目录,您可能没有关闭使用它的所有资源,您的程序可能没有这样做的权限,仅举几例

    不幸的是,该方法提供的关于原因的信息很少;这基本上取决于你去探索和解决它。但是有好消息;您首先不想使用
    文件

    Java7引入了新的包,这是一个更加健壮的文件访问API。它提供了抽象的概念,并将具体操作分离到类中,特别是它提供了文档化的类,以引发明确的异常,描述删除可能失败的原因


    使用
    路径
    文件
    ;你会很高兴你这么做的。

    文件无法删除的原因有很多;它可能不存在,它可能是一个非空目录,您可能没有关闭使用它的所有资源,您的程序可能没有这样做的权限,仅举几例

    不幸的是,该方法提供的关于原因的信息很少;这基本上取决于你去探索和解决它。但是有好消息;您首先不想使用
    文件

    Java7引入了新的包,这是一个更加健壮的文件访问API。它提供了抽象的概念,并将具体操作分离到类中,特别是它提供了文档化的类,以引发明确的异常,描述删除可能失败的原因


    使用
    路径
    文件
    ;你会很高兴你这么做的。

    我想出来了,我用一个文件阅读器来读取我没有关闭的文件的内容。很抱歉没有提供完整的代码

    我弄明白了,当时我正在使用文件阅读器读取我没有关闭的文件内容。很抱歉没有提供完整的代码

    如果目录不是空的,Java library delete函数不会删除该目录。 尝试递归删除所有子目录和文件

    或者使用一些外部库,比如ApacheCommonsIO

    File file = new File("/your/path/here");
    FileUtils.deleteDirectory(file);
    
    
    公地io
    公地io
    2.6
    
    如果目录不是空的,Java library delete函数不会删除该目录。 尝试递归删除所有子目录和文件

    或者使用一些外部库,比如ApacheCommonsIO

    File file = new File("/your/path/here");
    FileUtils.deleteDirectory(file);
    
    
    公地io
    公地io
    2.6
    
    在删除文件之前尝试调用垃圾收集器。

    在删除文件之前尝试调用垃圾收集器。

    可能是重复的。我发现,我正在使用文件读取器读取未关闭的文件内容。很抱歉没有提供完整的代码。可能是重复的。我发现,我正在使用文件读取器读取未关闭的文件内容。很抱歉没有提供完整的代码。
    文件
    构造函数中的相对路径有什么问题?您的Java类是从它的目录启动的。jvm在它自己的目录中运行。处理.delete的jvm如何知道“输入”的位置。猜测这将是一个坏主意,因为其他一些“输入”可能存在并被删除。所以java需要一个绝对路径和文件名“所以java需要一个绝对路径和文件名”——这根本不是真的。尝试打印新文件(“.”)。getAbsolutePath()
    ;它将打印您当前的工作目录。@dimo414“是”是正确的。它不是绝对文件名,而是抽象文件名。请参见此处的java源代码:因此,所使用的相对路径OP显然没有任何问题。在
    文件中的相对路径有什么问题?
    构造函数?您的java类是从它的目录启动的。jvm在它自己的目录中运行。处理.delete的jvm如何知道“输入”的位置。猜测这将是一个坏主意,因为其他一些“输入”可能存在并被删除。所以java需要一个绝对路径和文件名“所以java需要一个绝对路径和文件名”——这根本不是真的。尝试打印新文件(“.”)。getAbsolutePath()
    ;它将打印您当前的工作目录。@dimo414“是”是正确的。它不是绝对文件名,而是抽象文件名。请参见此处的java源代码:因此,所使用的相对路径OP显然没有问题。给您的印象是
    输入
    位于
    C:
    的根目录中?它可以在文件系统的任何地方;调用
    newfile(“inputs”)
    将创建程序运行所在的当前目录的
    File
    对象。@dimo414我写了“C:\\inputs”作为示例。文件夹可能在任何地方。正确的方法是