7

我有一个简单的现实生活问题,我想使用 OO 方法来解决。我的硬盘一团糟。我有 1.500.000 个文件、重复文件、完整的重复文件夹等等......

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

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

但是现在假设我想找到具有更自然意义的组。对此有不同的策略,具体取决于“用例”。

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

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

所以,现在进入正题:

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

一种非常粗略的方法是:

  1. 一开始,所有文件都是平等的
  2. 第一个,不是那么“好”的组是目录
  3. 如果您是一个大而干净的目录,您可以获得积分(均匀分布的名称)
  4. 如果所有文件的创建日期相同,您可能会被“自动创建”
  5. 如果你是 Program-Files 的孩子,我根本不在乎你
  6. 如果我将 A 组的你移到 C 组,这会提高“熵”吗

适合这种情况的最佳模式是什么。策略,过滤器和管道,“分组”.. 欢迎任何评论!

编辑以回应答案:

标记方法: 当然,我想到了标记。但是我在哪里画线。我可以创建不同的标签类型,例如 InDirTag、CreatedOnDayXTag、TopicZTag、AuthorPTag。这些标签可以按层次结构构建,但如何分组的问题仍然存在。但我会考虑一下并在这里添加我的见解..

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

克里斯

4

3 回答 3

5

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

  1. 将驱动器上的所有内容复制到外部磁盘(USB 或其他)上
  2. 全新安装您的系统
  3. 一旦你发现你需要一些东西,从你的副本中获取它,并将它放在一个明确定义的位置
  4. 6 个月后,丢弃您的外部驱动器。那里的任何东西都不可能那么重要。

您还可以安装 Google 桌面,它不会清理您的烂摊子,但至少可以让您有效地搜索它。

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

希望这可以帮助。

于 2008-10-05T13:40:32.523 回答
2

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

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

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

您还应该获得 Google 桌面。

于 2008-10-05T13:57:10.400 回答