Files.move 更改文件权限

问题描述 投票:0回答:1

我在使用 Java 7 时遇到问题

NIO.Files class.

我必须对 5 个不同大小的纯文本文件执行一些操作,在本例中为 20KB 到 23MB。

收到文件后,我将它们复制到临时文件夹:

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

操作已完成,但 23MB 文件的权限在复制的文件中发生了变化:我注意到尝试手动删除文件,在原始文件中不需要额外的权限,但在复制的文件中 Windows 会弹出一个弹出窗口,要求您的管理员权限...只有 23MB 才会发生这种情况,较小的保留与原始文件相同的权限。

当我尝试使用此方法删除复制的 23MB 文件时,问题出现了:

boolean isDeleted = Files.delete(tempPathOf23MBFile);

操作执行无异常,isDeleted 被指定为 true,但 23MB 文件仍保留在文件夹中......稍后,当我尝试使用相同的方法删除文件夹时,它会引发异常,因为文件夹不为空... 最奇怪的是,当我关闭 Eclipse 时,23MB 的文件就消失了!

我尝试使用

File.delete
Files.deleteIFExists
执行相同的任务,并且发生了同样的情况。

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

你能帮我一下吗? 我担心在操作中文件大小很重要,因为理想情况下,它应该以任何大小执行,甚至大于 23MB

java windows nio
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.