我正在开发一个Java桌面应用程序,在这个应用程序中,我需要实现回收站功能。目前:
使用我的桌面应用程序将一个文件复制到一个名为回收站的文件夹中,然后删除原始文件。location.
我的问题是,当从不同位置删除同名文件时,所有文件都会移动到由我创建的回收站文件夹中,而具有相同名称的旧文件将被覆盖。
我怎样才能解决这个问题?另外,还有其他类似回收站功能的替代方法吗?
发布于 2011-05-20 13:53:56
删除文件时:
(Note:如果有多个应用程序/线程同时执行此操作,则会出现问题。)
“恢复”文件所需的所有信息都在文本文件中,并且避免了重复名称问题。
要想对并发使用具有更强的健壮性,如果您有Java1.5或更高版本,请考虑使用java.util.UUID而不是“哑”随机数作为可回收的文件名。不能保证AFAIK是安全的,但是在大多数情况下它应该足够好(特别是在这台正在运行的机器上只有一个真正的用户时)。
最后,在删除之前,确保您已经在上面的步骤3和4中关闭了您的输出流,并且它们没有引发任何异常--否则您将有丢失数据的风险。(还原时也是这样:在删除回收的文件流之前关闭已恢复的文件流。)
发布于 2011-05-20 13:53:09
每当需要将文件移动到回收站时,
现在,当用户请求恢复时,使用该键从txt获取确切的位置并进行还原。
发布于 2011-10-18 19:51:41
文件名或绝对文件名“c.Programs.file-to delted.xls”并不是唯一的。您需要的是唯一的文件ID,它是为每个需要与已删除的文件对象一起存储的文件生成的。
当用户试图从回收站重新/取消删除文件时,您将使用文件id而不是文件名进行操作。
https://stackoverflow.com/questions/6072828
复制相似问题