【问题标题】:Is there any C++ lightweight cross-platform file system library?有没有 C++ 轻量级跨平台文件系统库?
【发布时间】:2014-04-04 13:47:31
【问题描述】:

我需要一个用于游戏开发的轻量级跨平台文件系统库。 我想在 Windows、Linux 和 Mac 上发布我的游戏。

据我所知,使用dirent.h 可以在所有三个平台上使用。但是,我想知道是否存在一个更易于使用的库 - 直接使用 dirent 让我感到困惑,我没有得到任何结果。

我也尝试过 Boost,但我不喜欢它不是轻量级的,而且它在我的游戏的 Unix 端口上给我带来了麻烦。

我需要的功能是:

  • 递归读取目录树
  • 获取目录中的所有文件
  • 获取一个目录下的所有子目录

【问题讨论】:

  • 您是在询问提供更轻松访问现有文件系统的库还是有关实现文件系统(容器)的库?
  • @EugeneMayevski'EldoSCorp 我在问一个库,它可以帮助我获取硬盘驱动器中的现有目录/文件。例如,我想轻松获取“C:/MyGame/Data/Images”中的所有 .png 文件。
  • 你检查过你的 GUI 框架吗(你在写游戏,对吧?)?有时他们倾向于包含额外的东西,比如文件系统 api。
  • @hate-engine 我正在使用 SFML,不幸的是它不包含文件系统 api。

标签: c++ api dll filesystems


【解决方案1】:

我创建了自己的文件系统库(在 Windows 和 Linux 上测试,都使用 GCC 和 Clang)。

您可以在 SSVUtils 库中找到它: https://github.com/SuperV1234/SSVUtils

SSVUtils 没有外部依赖。

示例用法:

log("Getting all page.json files", "loadPages");

string pagesPath("Json/Pages/");
vector<string> pageJsonPaths{getScan<Mode::Recurse, Type::File, Pick::ByName>(pagesPath, "page.json")};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多