在 C++ 中创建文件系统文件

Creating a filesystem file in C++

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

要真正“挂载”文件系统(即能够仅“打开”文件系统中的某些内容),您需要内核的支持。要么你让你的操作系统完全照顾它(例如 the VHD commands on windows; example use on Whosebug). Alternatively can use libfuse/winfsp 更直接地与内核交互,但是 afaik 需要自定义内核驱动程序。

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

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