2016-07-23 177 views
0

我,而在这种情况下使用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.deleteFiles.deleteIFExists执行相同的任务,发生同样的情况。

通过这个论坛,我发现它可能是一个资源泄漏...所以我已经审查了所有的缓冲区和一切,他们在删除的时刻被关闭......绝望,我已经分配所有的对象我在删除的时刻为空(我用调试勾选了所有对象)......但没有成功,问题仍然存在!

你能帮我吗? 是我所关注的是,在操作事项文件的大小,因为理想情况下,它应该与任何尺寸来完成,甚至更大的是23MB

回答