我可以用Java将文件放入LInux垃圾箱吗
我知道标准Java仍然没有提供一种标准的方法来将文件放入ecycle bin/trash,而不是永久删除它们。但幸运的是,有针对WIndows(jna)和OSX(com.apple.eio.FileManager)的解决方案我可以用Java将文件放入LInux垃圾箱吗,java,linux,recycle-bin,Java,Linux,Recycle Bin,我知道标准Java仍然没有提供一种标准的方法来将文件放入ecycle bin/trash,而不是永久删除它们。但幸运的是,有针对WIndows(jna)和OSX(com.apple.eio.FileManager)的解决方案 但是Linux Dekstop有什么功能吗?回收站是如何在Linux上实现的?它只是我可以将文件移动到的标准目录吗?Linux中的垃圾文件夹位于/home/username/.local/share/trash。尝试将文件移动到该文件夹。Linux中的垃圾箱文件夹位于/ho
但是Linux Dekstop有什么功能吗?回收站是如何在Linux上实现的?它只是我可以将文件移动到的标准目录吗?Linux中的垃圾文件夹位于
/home/username/.local/share/trash
。尝试将文件移动到该文件夹。Linux中的垃圾箱文件夹位于/home/username/.local/share/trash
。尝试将文件移动到该文件夹。您可以使用libtrash
,最有可能从软件包管理器获得
正确配置后,它会将回收站功能添加到所有程序和命令中 您可以使用
libtrash
,最有可能从包管理器获得
正确配置后,它会将回收站功能添加到所有程序和命令中 两个最常见的Linux桌面环境(KDE、Gnome)使用。对于最常见的情况,它由
$XDG\u DATA\u HOME/Trash
下的目录结构组成。如果环境变量未设置或为空,则使用$HOME/.local/share
此目录下有两个目录:文件
和信息
。“文件”包含被丢弃的文件,而“信息”包含一个桌面样式的文件,该文件提供有关被丢弃文件的信息,例如文件的原始名称和位置。请注意,files/
中的文件不必包含文件的原始名称(例如,在文件名冲突的情况下)。info目录中有一个匹配的.trashinfo
文件,其basename必须与文件/
中的条目相匹配,因此,例如文件/
中名为foo
的文件将在信息/
中具有相应的foo.trashinfo
.trashinfo
文件的内容:
[Trash Info]
Path=<original path to file e.g. foo/bar/baz.txt>
DeletionDate=<Date file was deleted in RFC3339 format (YYYYMMDDTHH:MM:SS)>
[垃圾信息]
路径=
删除日期=
它必须有这些行,否则格式不正确
规范中的注释说明:
销毁文件或目录时,实现必须首先在$trash/info中创建相应的文件。销毁文件或目录时,实现必须首先在$trash/info中创建相应的文件。此外,它必须尝试以原子方式执行此操作,这样,如果两个进程尝试使用相同文件名的垃圾文件,将导致两个不同的垃圾文件。在Unix联机系统上,这是通过生成一个文件名,然后用O_EXCL打开来完成的。如果成功,则创建是原子的(至少在同一台计算机上),如果失败,则需要选择另一个文件名
因此,您必须以这种方式执行垃圾清理操作
这在Java中似乎是一个相对简单的练习,所以一旦您了解了它是如何完成的,就开始吧
在kde中,还有kfmclient CLI工具,可以这样使用:
kfmclient move <file> trash:/
kfmclient移动垃圾桶:/
这是你的工作。不过,我不知道有哪种gnome是等效的。两种最常见的Linux桌面环境(KDE、gnome)使用。对于最常见的情况,它由
$XDG\u DATA\u HOME/Trash
下的目录结构组成。如果环境变量未设置或为空,则使用$HOME/.local/share
此目录下有两个目录:文件
和信息
。“文件”包含被丢弃的文件,而“信息”包含一个桌面样式的文件,该文件提供有关被丢弃文件的信息,例如文件的原始名称和位置。请注意,files/
中的文件不必包含文件的原始名称(例如,在文件名冲突的情况下)。info目录中有一个匹配的.trashinfo
文件,其basename必须与文件/
中的条目相匹配,因此,例如文件/
中名为foo
的文件将在信息/
中具有相应的foo.trashinfo
.trashinfo
文件的内容:
[Trash Info]
Path=<original path to file e.g. foo/bar/baz.txt>
DeletionDate=<Date file was deleted in RFC3339 format (YYYYMMDDTHH:MM:SS)>
[垃圾信息]
路径=
删除日期=
它必须有这些行,否则格式不正确
规范中的注释说明:
销毁文件或目录时,实现必须首先在$trash/info中创建相应的文件。销毁文件或目录时,实现必须首先在$trash/info中创建相应的文件。此外,它必须尝试以原子方式执行此操作,这样,如果两个进程尝试使用相同文件名的垃圾文件,将导致两个不同的垃圾文件。在Unix联机系统上,这是通过生成一个文件名,然后用O_EXCL打开来完成的。如果成功,则创建是原子的(至少在同一台计算机上),如果失败,则需要选择另一个文件名
因此,您必须以这种方式执行垃圾清理操作
这在Java中似乎是一个相对简单的练习,所以一旦您了解了它是如何完成的,就开始吧
在kde中,还有kfmclient CLI工具,可以这样使用:
kfmclient move <file> trash:/
kfmclient移动垃圾桶:/
这是你的工作。不过,我不知道gnome的等价物。我在寻找Java解决方案我在寻找Java解决方案Kay,听起来很合理,很惊讶它还没有被封装到一些Java中。好吧,听起来很合理,很惊讶它还没有被封装到一些Java中。