删除文件时:
- 生成一个随机数。
- 检查您的bin中是否已存在具有该名称的文件。是,执行1。
- 将文件复制到bin目录,但使用随机数作为文件名。
- 将原始文件名和随机数存储在文本文件中。
- 删除原件。
( 注意 : 如果您有多个应用程序/线程同时执行此操作,则会出现此问题。 )
您需要“还原”文件的所有信息都在文本文件中,并且避免了名称重复的问题。
为了更强健地防止并发使用,并且如果您具有Java
1.5或更高版本,请考虑使用一个
java.util.UUID而不是“哑”的随机数作为回收文件名。不能保证AFAIK是安全的,但是在大多数情况下它应该足够好(尤其是如果机器上只有一个真实用户,则该用户正在运行)。
最后,请确保在删除之前已关闭上述步骤3和4中的输出流,并且它们没有引发任何异常-
否则,您可能会丢失数据。(还原时也是如此:在删除回收的文件流之前,先关闭还原的文件流。)



