【问题标题】:File is getting locked after renameTo method (JAVA, Windows, JDK6)renameTo 方法后文件被锁定(JAVA、Windows、JDK6)
【发布时间】:2019-04-19 05:56:56
【问题描述】:

我正在将文件的扩展名从 .tmp 重命名为 .xml,但是当我尝试从其他路径访问同一个文件时,它给了我一个文件被锁定的异常。

String filename= "TemporaryFile.tmp";
File file = new File(filename);
String filename1 = file.getPath().replace(".tmp",".xml");
File file1 = new File(filename1);
if(file.renameTo(file1)){
System.out.println("File is successfully renamed");
}

在这里,文件已成功重命名,但已被某个进程锁定,无法访问以进行进一步处理。 我尝试使用返回 false 的 file.canWrite();,甚至尝试使用 setReadable()setExecutable() 方法修改其状态,但没有任何效果。对此的任何帮助将不胜感激。 请注意,我不能使用任何其他 JDK。

【问题讨论】:

    标签: java file file-rename jdk6


    【解决方案1】:
        String filename= "TemporaryFile.tmp";
        File file = new File(filename);
        String filename1 = file.getPath().replace(".tmp",".xml");
        File file1 = new File(filename1);
        if(file.renameTo(file1)){
            System.out.println("File is successfully renamed");
            System.out.println("Can write file: " + file.canWrite());
            System.out.println("Can write file1: " + file1.canWrite());
    
        }
    

    输出: 文件重命名成功

    可以写文件:false

    可以写file1: true

    Java 文档:https://docs.oracle.com/javase/7/docs/api/java/io/File.html#renameTo(java.io.File) 如果可行,则回发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多