2016-07-23 6 views
0

У меня возникли проблемы при использовании Java 7 NIO.Files class.Files.move разрешения изменения файла

я должен выполнить некоторые операции с 5 простых текстовых файлов разных размеров, от 20KB к 23MB в этом случае.

После того, как файлы будут получены, я скопировать их в папку Темп с этим:

Files.copy(originalPath, tempPath, StandardCopyOption.REPLACE_EXISTING); 

операция выполняется, но привилегии, что файл 23MB имели изменения в скопированной одном: я заметил, что попытка для удаления файлов вручную, в оригинале не требуются дополнительные привилегии, но в скопированном Windows Windows вызывает всплывающее окно с запросом разрешения администратора ... Это происходит только с 23 МБ, а меньшие - с теми же привилегиями, что и их оригиналы.

Проблема проявляется ко мне, когда я пытаюсь удалить скопированный файл 23Mb с этим методом:

boolean isDeleted = Files.delete(tempPathOf23MBFile); 

операция выполняется без исключений и IsDeleted назначается в качестве истинного, но 23MB файл остается в папке ... и позже, когда я пытаюсь стереть папку с помощью того же метода, он вызывает исключение, поскольку папка не пуста ... Самое странное, что когда я закрываю Eclipse, 23 МБ-файл исчезает !!

Я попытался выполнить ту же задачу с File.delete и Files.deleteIFExists, и то же самое произойдет.

Через этот форум я выяснил, что это может быть утечка ресурсов ... поэтому я просмотрел все буферы и все, и они закрыты в момент удаления ... Отчаявшись, я назначил все объекты, которые у меня есть в момент удаления до null (я проверил все из них с помощью отладки) ... но без успеха проблема остается!

Не могли бы Вы помочь мне? ли мое беспокойство, что в операции имеет значение размер файла, так как в идеале, она должна выполняться с любого размера, даже намного больше, что 23MB

ответ

0

Это было что-то связано с:

bugs.sun.com/bugdatabase/view_bug ? .do bug_id = 4715154

я должен был сделать, как говорит Дженни Смит:

I can't delete a file in java