Boost Filesystem - 枚举设备?

时间:2012-03-21 17:45:34

标签: c++ boost filesystems

所有

我正在尝试编写一个跨平台(因此:boost)方法/函数,它将枚举系统上的所有存储设备。根据我的发现,Boost文档提到了多个根文件系统,但没有详细说明如何处理它们。我认为带有硬盘,CD / DVD驱动器,USB驱动器等的Windows机器将被视为“多根系统” - 对吗?如果没有,那根是什么?

我假设在Linux中有一个根(例如/ dev),但我不确定如何使用Boost为多根系统(例如Window)执行此操作。是否有一个Boost方法来枚举设备?

帮助?

非常感谢,

:沸点:

1 个答案:

答案 0 :(得分:1)

Windows是单根系统,以\为根,但它们不是“文件”系统 - 它们是其他类型的对象。 (设备,驱动程序,文件,目录,对象类型,事件,突变体,事件对,窗口站,安全令牌,信号量,定时器,会话,内存部分,......)

(见WinObj。)

我认为没有任何Boost方法可以枚举这些,因为如果您使用本机NT API,人们会对您不满。 (Win32子系统不公开这些;它只公开\??\目录。)不过,您可以使用NtOpenDirectoryObject之类的函数来枚举这些。