我有一个简单的、现实生活中的问题,我想使用面向对象的方法来解决。 我的硬盘一片混乱。 我有 1,500,000 个文件、重复文件、完整的重复文件夹等等...

当然,第一步是将所有文件解析到我的数据库中。到目前为止没有问题,现在我得到了很多不错的条目,它们是“自然分组”的。可以使用以下简单查询获得此简单分组的示例:

  1. 给我所有大于 100MB 的文件
  2. 显示超过 3 天的所有文件
  3. 获取所有以 docx 结尾的文件

但现在假设我想找到具有更自然意义的组。根据“用例”的不同,有不同的策略。

假设我有一个坏习惯,就是把所有下载的文件放在桌面上。然后我将它们解压到适当的文件夹,而不总是删除 ZIP 文件。我将它们移动到“阁楼”文件夹中。对于系统来说,要找到这组文件 时间导向 搜索方法,也许与“检查 ZIP 是否相同,然后文件夹 X”相结合将是合适的。

假设另一个复制文件的坏习惯,有一些文件夹“干净的文件”位于 结构不错, ,还有另一个 凌乱的文件夹. 。现在,我的干净文件夹有 20 个图片库,我的凌乱文件夹有 5 个重复图库和 1 个新图库。人类用户可以通过看到“哦,那都是重复的,那是一个新的,所以我将新的放在干净的文件夹中并丢弃所有重复的”来轻松识别这一逻辑。

那么,现在进入正题:

您会使用哪种策略或模式组合来解决这种情况。如果我链接过滤器,“最难的”将获胜,并且我不知道如何让系统“测试”合适的组合。在我看来,这不仅仅是过滤。其动态分组通过结合多个标准来找到“最佳”组。

一种非常粗略的方法是:

  1. 一开始,所有文件都是平等的
  2. 第一个不太“好”的组是目录
  3. 如果您是一个大而干净的目录,您将获得积分(均匀分布的名称)
  4. 如果所有文件都具有相同的创建日期,则可能是“自动创建”
  5. 如果你是程序文件的孩子,我根本不关心你
  6. 如果我把你从A组移到C组,这会提高“熵”吗?

适合这种情况的最佳模式是什么?策略、过滤器和管道、“分组”..有什么意见欢迎留言!

编辑对答案的反应:

标记方法:当然,我也想过贴标签。但我该在哪里划清界限呢?我可以创建不同的标签类型,例如 InDirTag、CreatedOnDayXTag、TopicZTag、AuthorPTag。这些标签可以按等级结构构建,但如何分组的问题仍然存在。但我会对此进行一些思考并在这里添加我的见解。

拖延评论:是的,听起来是这样。但这些文件只是我能想到的最简单的例子(也是目前最相关的)。它实际上是以动态方式对相关数据进行分组的大局的一部分。也许我应该让它更抽象,以强调这一点:我是 不寻找 文件标记 工具 或搜索引擎, 而是一种算法或模式 为了解决这个问题...(或者更好的想法,比如标记)

克里斯

有帮助吗?

解决方案

我没有解决方案(并且很想看到一个解决方案),但我可能建议除了明显的名称、大小和时间戳之外,从文件中提取元数据。

  • 带内元数据,例如 MP3 ID3 标签、EXE/DLL 的版本信息、HTML 标题和关键字、Office 文档的摘要信息等。甚至图像文件也可以有有趣的元数据。如果查找重复项,整个内容的哈希值会有所帮助。
  • 带外元数据,例如可以存储在 NTFS 备用数据流中 - 例如。您可以在非 Office 文件的“摘要”选项卡中编辑的内容
  • 如果您可以阅读,您的浏览器会保存有关您从何处下载文件的信息(尽管 Opera 不会保存很长时间)。

其他提示

您正在拖延。停下来,清理你的烂摊子。如果它真的很大,我推荐以下策略:

  1. 在外置磁盘(USB或其他)上复制驱动器上的所有内容
  2. 彻底安装系统
  3. 一旦发现您需要某些东西,请从您的副本中获取,并将其放置在明确定义的位置
  4. 6个月后,扔掉外接硬盘。那里的任何东西都不会那么重要。
  5. 你也可以安装谷歌桌面,它不会清理你的烂摊子,但至少可以让你有效地搜索它。

    如果你想在将来阻止这种情况发生,你必须改变你在计算机上组织事物的方式。

    希望这会有所帮助。

你发烧了,唯一的处方是Tag Cloud!您仍然需要清理,但使用 TaggCloud Tag2Find 您可以按元数据组织文件,而不是驱动器上的位置。 Tag2Find将观看共享,当任何内容保存到共享时,会出现一个弹出窗口并要求您标记该文件。

您也应该使用Google桌面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top