自动从回收站删除旧文件,同时保留新文件?


25

我想要一个资源管理器附加程序,它将在一段时间后从回收站中删除旧文件。

例如,我要将时间限制设置为30天。当我在Windows中删除文件时,该软件将保留其删除时间记录。每天,它都会扫描已存在30天的已删除文件,如果有,则将其删除。

有没有这样的软件?


也许,不是设置时间限制,而是可以使回收站在达到特定大小限制时自动删除最旧的项目?这可以接受吗?
威廉·杰克逊

3
@WilliamJackson对于那些硬盘空间有限的人来说,这可能是一个解决方案。但就我而言,我要确保我不会后悔由于丢失最近删除的文件而清空回收文件。使用此系统,我只会忘记回收站,它会自动清空自身,并且如果我之后感到后悔,我将有足够的时间来恢复已删除的文件。
hkBattousai 2012年

1
在gnu / linux上,KDE具有此功能,我认为它对可用性非常有用。为什么我要将垃圾桶中的文件保存超过1个月?这种方法不会使垃圾桶不再与您不再相关的旧文件杂乱无章,因此,在需要时查找和恢复一个或多个文件要容易得多(如果您需要处理很多机智的文本,这非常有用)文件,它们总是很小),并且不会浪费磁盘空间,而文件对您不再有用。
gerlos

这不是一个附加的资源管理器,而且只有24小时,但是CCleaner拥有此选项i.imgur.com/JaeJhzU.png
马修·洛克

Answers:


9

RecycleBinEx是一个简单的Windows应用程序,完全可以满足您的要求。请参阅:http//www.fcleaner.com/recyclebinex

在Mac OSX上,Hazel(除其他功能外)执行相同的操作:http : //www.noodlesoft.com/

KDE Plasma 默认提供此功能,因此,如果您正在运行Kubuntu,Arch,Chackra Linux或任何其他带有KDE的发行版,则已经具有此功能。只需查看Dolphin配置窗口。

在提供标准FreeDesktop.org Trash功能的Ubuntu Unity,Gnome或任何其他gnu / linux桌面环境上,您可以使用AutoTrash进行此操作:http : //www.logfish.net/pr/autotrash/
也可以实现类似的行为使用trash-cli,也可以直接从命令行将文件发送到垃圾箱。参见:https : //github.com/andreafrancia/trash-cli

那里的大多数电子邮件应用程序的“垃圾箱”也都具有此功能。

在Android上,默认情况下没有任何“垃圾桶”(删除时,它会永远消失),但是您可以安装Dumpster之类的应用以(以某种方式)获得类似的功能:http : //www.dumpsterapp.mobi/

如上所述,我认为自动从垃圾箱中删除旧文件是使其更易使用的一项重要功能,因为它可以减少混乱(三个月前您丢弃的那些文件是否仍与您相关?并且所有这些相同的旧版本文件?),并且更容易找到您想要恢复的内容(毕竟,这是在我们的计算机上安装“垃圾桶”的原因),但仍然安全。

如果您要处理大量文本文件(代码或散文),则该功能甚至会更有用,因为大多数时间都很小,不需要太多空间(因此可能永远也达不到垃圾桶的配额)。这样,您甚至不需要定期“清空垃圾箱”。您只知道您有时间来恢复“已删除”的文件。

查看大多数云服务(Dropbox,Google Drive,Simplenote等),其中大多数似乎对删除文件都有类似的策略。我真的认为对您的文件进行处理是正确的,他们似乎也这么认为。


1
自您在此处发布答案以来,我一直在使用此软件。很好 我对此很满意。我推荐它。这正是我想要的。感谢您的回答。
hkBattousai 2014年

1
一个不错的添加是trash-cli,类似于的命令行垃圾回收工具autotrash,即使您从命令行也可以将文件发送到垃圾箱。参见webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.htmlgithub.com/andreafrancia/trash-cli
gerlos 2014年

RecycleBinEx是否可以在Windows 10中使用?这似乎10.无法在Windows中提供的默认功能
still_dreaming_1

1
我上次尝试(数个月前)时,@ still_dreaming_1 RecycleBinEx似乎可以在Windows 10上运行。但是我没有将其用作主系统,因此我无法确定它是否仍可用于该系统的最新更新。
盖洛斯

1
我只是在Windows 10上尝试过RecycleBinEx。GUI的行为有些奇怪-回收站中的某些文件显示为单字符文件名-但删除X天之前的文件的命令行选项似乎可以正常工作。要查看命令行选项,请键入“ RecycleBinEx.exe /?” 在命令行中。
亚伦

17

我不知道任何Explorer加载项,但是像Windows中的大多数事情一样,可以使用PowerShell来完成:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
    $Path = $Drive.Name + ':\$Recycle.Bin'
    Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
    Remove-Item -Recurse
}

将此脚本另存为带有.ps1扩展名的文本文件。然后,您可以使用任务计划程序定期运行此程序。

但是,首先,您需要允许执行PowerShell脚本,因为默认情况下,您只能执行直接在PowerShell提示符下键入的命令。为此,请打开PowerShell并键入以下命令:

Set-ExecutionPolicy RemoteSigned

出现提示时输入“ y”或“ yes”。请参阅Get-Help Set-ExecutionPolicy以获取更多信息。

现在打开任务计划程序,并使用以下参数创建一个新任务:

  1. 在“常规”标签下,输入名称并选中“以最高权限运行”选项
  2. 在“触发器”标签下,添加一个新触发器并将任务设置为每天运行
  3. 在“操作”标签下,添加一个新操作:
    • 将类型保留为“启动程序”
    • 将“程序/脚本”字段设置为 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • 将“添加参数”字段设置为 -NonInteractive -File "C:\path\to\script.ps1"
  4. 在“条件”选项卡下,取消选中“仅当计算机使用交流电源时才启动任务”

脚本的逐行说明:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {

这将获取计算机中所有驱动器的列表,并逐一循环遍历它们。-PSProvider FileSystem仅返回磁盘驱动器才需要该参数,因为PowerShell还具有用于注册表项配置单元等其他各种事物的伪驱动器。

有关更多信息,请参阅Get-Help Get-PSDrive本教程有关PowerShell中的循环处理

$Path = $Drive.Name + ':\$Recycle.Bin'

这将在当前驱动器上构造“回收站”文件夹的路径。请注意在第二部分周围使用单引号,以防止PowerShell解释$Recycle为变量。

Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |

这将返回给定路径(我们使用上一个命令构造的路径)下的所有文件和子文件夹。该-Force参数需要进入隐藏文件夹和系统文件夹,并且该-Recurse参数使命令递归执行,即。循环遍历所有子目录。-ErrorAction是大多数PowerShell命令的标准参数,该值SilentlyContinue使命令忽略错误。这样做的目的是防止已配置为立即删除文件的驱动器出现错误。|最末端的符号将结果传递给下一个命令;我将其分成几行以提高可读性。

有关更多信息,请参见Get-Help Get-ChildItem

Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |

这只是过滤上一条命令的结果,仅返回30天以上的结果。$_是指当前正在处理的对象,LastWriteTime在这种情况下,属性是指删除文件的日期和时间。Get-Date返回当前日期。

有关更多信息,请参见Get-Help Where-ObjectGet-Help Get-Date

Remove-Item -Recurse

这只是删除上一条命令传递给它的项目。该-Recurse参数自动删除非空子文件夹的内容;没有它,将提示您输入此类文件夹。

有关更多信息,请参见Get-Help Remove-Item


我设置好了。非常感谢您详细解释它。
hkBattousai 2012年

3
除了全局设置执行策略之外,您还可以创建一个命令行来为流程设置它:powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1
jpmc26 2014年

资源管理器详细信息视图中的回收站有一个特殊的列:“删除日期”,我想知道如何使用它进行过滤?无论如何,LastWriteTime都不是同一件事。
Ciantic 2015年

发言时间太早,发现了这一点:baldwin-ps.blogspot.fi/2013/07/…它也有一个“日期已删除”。
Ciantic 2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.