【问题标题】:java File.delete() dosent work for rename filejava File.delete() 不适用于重命名文件
【发布时间】:2018-04-20 04:49:43
【问题描述】:

为什么这段代码不能正常工作?在硬盘上创建文件a.txt,然后将a.txt重命名为b.txt,但b.txt不会删除。

import java.io.File;

public class Main {

    public static void main(String[] args) {

        File f=new File("a.txt");
        try {

            f.createNewFile();
        }
        catch (Exception e){}

        f.renameTo(new File("b.txt"));

        f.delete();
    }
}

如果行

f.renameTo(new File("b.txt"));

已删除,f.delete(); 工作正常,a.txt 已从硬盘中删除。

【问题讨论】:

  • 您应该记录更多信息而不是隐藏异常。尝试关闭文件“b.txt”。外部化 b 文件 b=new File("b.txt")。您也可以在删除之前测试文件是否存在...
  • 文件“b.txt”已关闭并存在于硬盘上但不删除..
  • 就像哈米德说的那样,我会尝试看看另一个进程是否正在锁定文件。但提供更多信息。很难说没有任何错误。

标签: file rename delete-file


【解决方案1】:

如果出现以下情况,delete 方法将不起作用:

  • 文件不存在
  • 文件已被另一个进程(编辑器,..)打开
  • 您没有删除它的权限。

能否提供错误堆栈进行分析?

【讨论】:

  • 一切正常,但代码不起作用!控制台上没有错误,但 b.txt 没有删除。试试代码...
猜你喜欢
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 2011-01-02
相关资源
最近更新 更多