【问题标题】:Indexing file names and its content索引文件名及其内容
【发布时间】:2014-05-29 18:24:00
【问题描述】:

我想编写一个程序来索引给定目录中的文件名及其内容。如果它们匹配给定的正则表达式,那么我想索引它们。我将使用正则表达式函数。

我真的不知道如何开始。

我会使用多态方法:

  1. 类 Base(虚拟),带有基本信息(名称、父目录...)。
  2. File 类,Base 的子级,代表一个文件。
  3. 代表目录的类文件夹/目录。

我也在考虑用地图建树。

你能告诉我你对此的看法吗?

【问题讨论】:

    标签: c++ regex file indexing directory


    【解决方案1】:

    对于文件系统功能,请使用Boost.Filesystem

    对于正则表达式,C++11 使用<regex>,否则使用Boost.Regex

    您在安装和学习 Boost 时可能遇到的任何初始(!)麻烦都会很快得到回报。

    对于您的地图,请使用std::map

    无论如何,不​​要重新发明轮子。

    【讨论】:

    • 恐怕我不能使用 Boost.Filesystem 和 Boost.Regex。这是一个家庭作业,我只能使用几个库。
    • @rusol:你必须实现自己的正则表达式?在家庭作业中?严重地?那么,你可以使用哪些库呢? C++ 本身几乎没有文件系统访问。至少,您必须使用操作系统提供的系统库。我仍然建议您查看 Boost.Filesystem 以获得一些灵感。就个人而言,我不会在这里使用 OOP。
    • 我可以使用正则表达式函数、标准 C++ 和 C 库。更不幸的是。为什么不使用 OOP?
    • @rusol:因为你并没有因为复杂性的增加而获得太多收益。看看boost.org/doc/libs/1_55_0/libs/filesystem/doc/faq.htm:“为什么 path 不是具有派生 directory_path 和 file_path 类的基类?”其实,看看boost.org/doc/libs/1_55_0/libs/filesystem/doc/design.htm,你就会发现设计一个好的文件系统库是多么的困难。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 2016-09-18
    • 2014-07-11
    相关资源
    最近更新 更多