2012-03-21 104 views
0

全部,Boost Filesystem - 枚舉設備?

我想編寫一個跨平臺(因此:boost)方法/函數,將枚舉系統上的所有存儲設備。根據我發現的,Boost文檔提到了多個根文件系統,但沒有詳細說明如何處理它們。我認爲有硬盤,CD/DVD驅動器,USB驅動器等的Windows機器將被視爲「多根系統」 - 正確的?如果不是,什麼是根?

我假設在Linux中有一個根(例如/ dev),但我不確定如何使用Boost爲多根系統(例如Window)執行此操作。是否有枚舉設備的Boost方法?

幫助?

非常感謝你,

:BP:

回答

1

Windows是一個單根系統,在\紮根,但他們沒有 「文件」 系統 - 它們是其他種類的物體。 (設備,驅動程序,文件,目錄,對象類型,事件,突變體,事件對,窗口站,安全令牌,信號燈,定時器,會話,內存部分,...)

(見WinObj

我不認爲有任何Boost方法來枚舉這些方法,因爲如果你使用本地NT API,人們會皺眉。 (Win32子系統不公開這些;它只公開\??\目錄。)然而,您可以使用像NtOpenDirectoryObject這樣的函數來枚舉這些。