У меня возникли проблемы при использовании 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