我,而在这种情况下使用Java 7 NIO.Files class.
Files.move更改文件权限
我必须用不同大小的5个纯文本文件执行一些操作,从20KB到23MB有问题。
一旦文件被接受,我将它们复制到一个临时文件夹与此:
Files.copy(originalPath, tempPath, StandardCopyOption.REPLACE_EXISTING);
的操作完成,但该23MB的文件曾在复制一个变化的特权:我注意到,试图手动删除文件,在原来的一个没有额外的特权是必需的,但在复制一个Windows引发一个弹出窗口要求您的管理员权限......这只发生在23MB,较小的保持与原始相同的特权。
的问题显示了我,当我尝试删除用这种方法复制23MB的文件:
boolean isDeleted = Files.delete(tempPathOf23MBFile);
操作是不例外执行并请将isDeleted被指派为真,但23MB的文件遗体在文件夹中......后来当我尝试用相同的方法擦除文件夹时,它引发了一个异常,因为该文件夹不是空的... 最奇怪的是,当我关闭Eclipse时,23MB文件消失了!
我试图用File.delete
和Files.deleteIFExists
执行相同的任务,发生同样的情况。
通过这个论坛,我发现它可能是一个资源泄漏...所以我已经审查了所有的缓冲区和一切,他们在删除的时刻被关闭......绝望,我已经分配所有的对象我在删除的时刻为空(我用调试勾选了所有对象)......但没有成功,问题仍然存在!
你能帮我吗? 是我所关注的是,在操作事项文件的大小,因为理想情况下,它应该与任何尺寸来完成,甚至更大的是23MB