我想用OO方法解决一个简单的现实问题.我的硬盘很乱.我有1.500.000文件,重复文件,完整的重复文件夹,等等...
当然,第一步是将所有文件解析到我的数据库中.到目前为止没有问题,现在我有很多很好的条目,有点"自然分组".可以使用以下简单查询获得此简单分组的示例:
给我所有大于100MB的文件
显示超过3天的所有文件
找到所有以docx结尾的文件
但现在假设我想找到一些具有更自然意义的群体.根据"用例",有不同的策略.
假设我养成了将所有下载的文件放在桌面上的坏习惯.然后我将它们提取到适当的文件夹,而不是总是删除ZIP文件.我将它们移动到"阁楼"文件夹中.对于系统,要找到这组文件的时间导向搜索方法,可能与"检查ZIP是否相同然后文件夹X"相结合是合适的.
假设另一个重复文件的坏习惯,有一些文件夹,其中"干净的文件"位于一个漂亮的结构中,另一个文件夹是杂乱的.现在我的干净文件夹有20个图片库,我的杂乱文件夹有5个重复和1个新图库.一个人类用户可以通过看到"哦,那些只是重复,这是一个新的,所以我把新的一个放在干净的文件夹中并删除所有重复"来轻松识别这个逻辑.
所以,现在要谈到这一点:
您将使用哪种策略或模式组合来解决这种情况.如果我链式过滤器,"最难"将获胜,我不知道如何让系统"测试"合适的组合.它告诉我,它只是过滤.它通过组合多个标准来动态分组,以找到"最佳"组.
一个非常粗略的方法是:
一开始,所有文件都是相同的
第一个,不是那么"好"的组是目录
如果你是一个大而干净的目录,你可以获得积分(均匀分布的名字)
如果所有文件具有相同的创建日期,您可能会"自动处理"
如果你是Program-Files的孩子,我根本不关心你
如果我移动你,A组,进入C组,这将改善"熵"
适合这种情况的最佳模式是什么?战略,过滤器和管道,"分组"..欢迎任何评论!
在重新开始回答时编辑:
标记方法: 当然,标记克服了我的想法.但是我在哪里画线.我可以创建不同的标签类型,如InDirTag,CreatedOnDayXTag,TopicZTag,AuthorPTag.这些标签可以用hirarchy结构化,但是如何分组的问题仍然存在.但我会给出一些想法,并在此添加我的见解..
拖延评论: 是的,听起来像那样.但文件只是我能想到的最简单的例子(目前最相关).它实际上是以动态方式对相关数据进行分组的更大图景的一部分.也许我应该保持它更抽象,强调这一点:我不是在寻找文件标记工具或搜索引擎,而是一种算法或模式来解决这个问题...(或者更好的是,想法,比如标记)
克里斯
你在拖延.停下来,清理你的烂摊子.如果真的很大,我推荐以下策略:
在外部磁盘(USB或其他)上复制驱动器上的所有内容
彻底安装您的系统
一旦您发现需要某些东西,请从您的副本中获取,并将其放置在明确定义的位置
6个月后,丢弃外部驱动器.那里的任何东西都不可能那么重要.
您也可以安装Google桌面,它不会清理您的混乱,但至少可以让您有效地搜索它.
如果您希望将来阻止这种情况发生,您必须更改计算机上组织内容的方式.
希望这可以帮助.