2012-03-21 53 views
0

全部,Boost Filesystem - 枚举设备?

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

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

帮助?

非常感谢你,

:BP:

回答

1

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

(见WinObj

我不认为有任何Boost方法来枚举这些方法,因为如果你使用本地NT API,人们会皱眉。 (Win32子系统不公开这些;它只公开\??\目录。)然而,您可以使用像NtOpenDirectoryObject这样的函数来枚举这些。