如何撤消转移到Java的垃圾操作



有一个调用java.awt.Desktop.getDesktop().moveToTrash(FILE)将文件移至垃圾。

当文件在垃圾中时,将如何使用Java将文件放回原始位置?

请注意,在某些操作系统上几乎不可能还原已删除的文件。

当您谈论Windows Filesystems时,使用一些JNI代码可以访问文件系统并重置删除标志。

显然,如果您的程序删除文件,则可以将它们移至bin文件夹中,如果需要,您可以从中恢复。

另一个选项可能是编写一些监视文件系统活动的服务,并可以将文件复制到垃圾箱中以进行以后还原。阅读有关jnotify的信息。

由于各种原因,Windows没有简单地对应回收箱的文件夹的概念。

请参考https://bugs.java.com/bugdatabase/view_bug.do?bug_id=5080625

正确的方法是使用JNI调用Windows shfileoperation API,在shfileopsstruct结构中设置fo_delete标志。

最新更新