2

我希望使用 java 实现用于编辑/删除/移动等的撤消/重做文件/文件夹功能。那可能吗 ?

详细信息:我正在使用 观看给定的文件夹javaFileWatcher,我从观察者那里收到一条消息,如果有任何文件/文件夹创建/编辑/删除/重命名。现在我想如果任何用户删除/创建了任何文件/文件夹,我将能够使用 java 撤消它。任何人都可以帮忙。

注意:我使用的是windows

提前致谢。

4

2 回答 2

3

不可能,删除是最终的,没有像操作系统那样的回收站,你必须自己实现它。

于 2013-04-24T10:57:02.213 回答
1

作为一个开始的想法,看看命令模式。这通常是撤消/重做事情的实现方式。这个想法是,您可以将有关操作的所有“重要”内容存储到单个对象中,然后将它们存储在有序集合中。

在您的情况下,您想要监控 FS 而不是您自己的数据模型这一事实使事情变得非常困难。但是,如果您能负担得起冗余数据存储,那么我认为可以假设它可以完成。(我建议您阅读 git SCM 的工作方式。我的意思是,它将所有内容存储在一个.git文件夹中,并且能够从其存储的压缩数据中恢复其所谓的工作目录中的任何先前状态。)

实际上,如果您可以将 git 加入您的程序中,那么它会容易得多。我认为您在要监督的目录中初始化了一个 git repo,然后每次收到有关某些 FS 更改的通知时,您可以要求 git ( git status) 告诉您哪些文件实际上已更改。甚至可以使用简单的 git 命令恢复已删除的文件。

这远不是您问题的完整答案,但是我可能已经给出了一些想法。祝你好运。

于 2013-04-24T11:04:23.360 回答