2012-03-21 9 views
0

すべて、ブーストファイルシステム - デバイスを列挙していますか?

システム上のすべてのストレージデバイスを列挙するクロスプラットフォーム(したがって:ブースト)メソッド/関数を記述しようとしています。私が見つけたことから、Boostのdocsは複数のルートファイルシステムについて言及していますが、それらを扱う方法については詳しく述べていません。私は、ハードディスク、CD/DVDドライブ、USBドライブなどを備えたWindowsマシンは「複数のルートシステム」と見なされるだろうと思いますか?もしそうでなければ、根は何ですか?

Linuxでは単一のルート(例:/ dev)があると仮定していますが、Boostを使用してマルチルートシステム(ウィンドウなど)を実行する方法はわかりません。デバイスを列挙するBoostメソッドはありますか?

ヘルプ?

は、非常に多くの

ありがとう:BP:

答えて

1

は、Windowsが\をルート単一ルートシステム、であるが、彼らは、 "ファイル" システムじゃない - 彼らは他の種類ですオブジェクトの。 (デバイス、ドライバ、ファイル、ディレクトリ、オブジェクトタイプ、イベント、変異体、イベント対、ウィンドウステーション、セキュリティトークン、セマフォ、タイマー、セッション、メモリセクション、...)

WinObjを参照してください。)

ネイティブのNT APIを使用すると、人々があなたを嫌うので、これらを列挙するためのBoostメソッドはありません。 (Win32サブシステムはこれらを公開しておらず、\??\ディレクトリしか公開していません)。しかし、NtOpenDirectoryObjectなどの関数を使用してこれらを列挙できます。

関連する問題