Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法删除Java中的文件_Java_File_Delete File - Fatal编程技术网

无法删除Java中的文件

无法删除Java中的文件,java,file,delete-file,Java,File,Delete File,无论出于何种原因,我对File.delete()和File.renameto(File)有问题。例如: private void doWork(){ File inputFile = new File("resources/custom/inputFile.txt"); System.out.println(inputFile.delete()); } 这将为我返回false,并且不会删除该文件 我没有在其他任何地方打开或使用此文件,我不明白为什么不能删除它。有没有其他人遇到过

无论出于何种原因,我对File.delete()和File.renameto(File)有问题。例如:

private void doWork(){
    File inputFile = new File("resources/custom/inputFile.txt");
    System.out.println(inputFile.delete());
}
这将为我返回false,并且不会删除该文件

我没有在其他任何地方打开或使用此文件,我不明白为什么不能删除它。有没有其他人遇到过这个问题,或者对这个问题有什么见解

尝试添加一行:

System.out.println(inputFile.getCanonicalPath());
这将打印实际路径(从根开始),可能会显示它不是您期望的路径。

试试这个

private void doWork(){
    File inputFile = new File("resources\\custom\\inputFile.txt");
    System.out.println(inputFile.delete());
}

此外,如果您添加try and catch,它也会有所帮助。您是否有删除该文件的权限?您确定该文件存在并且路径正确吗?您确定完全解决的问题与您认为的一样吗?您是否具有文件和目录的删除访问权限?如果您在Windows上,并且有人打开了它,则无法删除它。我相信Windows会以某种方式延迟文件关闭,这会导致立即删除失败。几次睡眠和重试可能会有所帮助。删除“资源”下的文件也很奇怪。你确定这是一个文件,不是一个JAR条目吗?这无关紧要;Java负责将斜杠转换为底层操作系统的约定。试一试也无济于事;如果它是一个
运行时异常
它会冒泡——delete返回false很可能意味着没有异常。使用try-and-catch是一个很好的做法,我的意思不仅仅是这个,可能文件不在那里,可能会丢失一些权限如果你真的打算处理异常,这是一个很好的做法,否则你就不该抓住它。另外,由于
SecurityException
是一个运行时异常,您可能不想在此位置捕获它。您是对的:)而且我不知道Java转换斜杠感谢提供的信息确保您的可执行文件运行在与您尝试删除的文件相关的正确目录中。使用规范文件名可删除在错误目录中执行的正确文件名。