我在使用 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