Файл блокируется после метода renameTo (JAVA, Windows, JDK6) - PullRequest
0 голосов
/ 16 ноября 2018

Я переименовываю расширение файла из .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");
}

Здесь файл успешно переименован, но заблокирован каким-либо процессом и недоступен для дальнейшей обработки. Я попытался использовать file.canWrite();, который возвращает false, и даже попытался изменить его состояние с помощью методов setReadable() и setExecutable(), но ничего не работает. Любая помощь в этом будет оценена. Обратите внимание, что я не могу использовать другие JDK.

1 Ответ

0 голосов
/ 16 ноября 2018
    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

Можно записать файл1: true

Java Doc: https://docs.oracle.com/javase/7/docs/api/java/io/File.html#renameTo(java.io.File) Обратная передача, если это сработало.

...