【问题标题】:Creating a filesystem file in C++ [closed]在 C++ 中创建文件系统文件 [关闭]
【发布时间】:2022-01-25 19:32:25
【问题描述】:

有没有办法创建一个可以在 C++ 中挂载的文件系统文件?我想制作一个包含 NTFS 文件系统的文件并将其挂载到新分区。我希望在 Windows 中用 C++ 完成此操作。是否有一个库和一些代码示例可以做到这一点?我知道windows有diskpart工具可以做到这一点,但它有C++ API或类似的东西吗?

【问题讨论】:

  • 希望这可以帮助你github.com/util-linux/util-linux/blob/master/disk-utils/mkfs.c。根据 mkfs 命令,你可以查看它的来源。
  • 这是我需要的,但我忘了说我在 Windows 环境中需要它。我将编辑问题。
  • 谷歌搜索“libntfs-3g”。这是一个用于处理具有常见文件系统操作(打开、写入、读取等)的 NTFS 块设备的库。您可以使用 C++ 多态性来“挂载”它。从外部来看,这将是一个读取/写入文件系统映像的进程。

标签: c++ windows filesystems


【解决方案1】:

要真正“挂载”文件系统(即能够在该文件系统中“打开”某些东西),您需要内核的支持。要么让你的操作系统完全处理它(例如the VHD commands on windowsexample use on stackoverflow)。或者可以使用libfuse/winfsp 更直接地与内核交互,但需要自定义内核驱动程序。

如果你有一个图像文件,里面有一些文件系统,你只想看看里面有什么,但不需要 C/C++ 标准库命令(fopen、ifstream 等)来工作,那么可以专门读/写图像文件格式和文件系统的组合也足够了。

对于 C#,可能会有 DiscUtils 库可以满足您的需求,但我不知道有类似的支持 NTFS 的 c/c++ 库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-29
    • 2012-06-11
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多