所有
我正在尝试编写一个跨平台(因此:boost)方法/函数,它将枚举系统上的所有存储设备。根据我的发现,Boost文档提到了多个根文件系统,但没有详细说明如何处理它们。我认为带有硬盘,CD / DVD驱动器,USB驱动器等的Windows机器将被视为“多根系统” - 对吗?如果没有,那根是什么?
我假设在Linux中有一个根(例如/ dev),但我不确定如何使用Boost为多根系统(例如Window)执行此操作。是否有一个Boost方法来枚举设备?
帮助?
非常感谢,
:沸点:
答案 0 :(得分:1)
Windows是单根系统,以\
为根,但它们不是“文件”系统 - 它们是其他类型的对象。 (设备,驱动程序,文件,目录,对象类型,事件,突变体,事件对,窗口站,安全令牌,信号量,定时器,会话,内存部分,......)
(见WinObj。)
我认为没有任何Boost方法可以枚举这些,因为如果您使用本机NT API,人们会对您不满。 (Win32子系统不公开这些;它只公开\??\
目录。)不过,您可以使用NtOpenDirectoryObject
之类的函数来枚举这些。