0

以下のリンクを使用すると、ハードディスクの空き容量を確保できます。

ハードディスク容量を取得する

しかし、セカンダリ ハードディスクを接続すると、その詳細が表示されません。

ハードディスクの数をループしてスペースを取得するにはどうすればよいですか?

ループセクターでそれを取得したいと思います。ハードディスクの数を取得し、harddisk1 のドライブをループしてから、harddisk2 のドライブをループします。

4

2 に答える 2

1

Windows API のGetLogicalDriveStrings関数を使用します。

std::vector< std::basic_string<TCHAR> > drives;

TCHAR szBuffer[1024];
::GetLogicalDriveStrings(1024, szBuffer);
TCHAR *pCurrentDrive = szBuffer;
while (*pCurrentDrive)
{
   drives.push_back( pCurrentDrive );
   pCurrentDrive = &pCurrentDrive[_tcslen(pCurrentDrive) + 1];
}

次に、ベクターGetDiskFreeSpaceEx内のすべての要素を呼び出します。drives

GetLogicalDrives代わりに、ドライブをビット マスクとして返す関数を使用することもできます。ただし、この場合はドライブを直接GetLogicalDriveStrings渡すことができる文字列として返すため、より簡単だと思います。GetDiskFreeSpaceEx

于 2013-02-11T13:24:34.373 に答える
0

どうですか:

for (char drive = 'a'; drive <= 'z'; drive++)
{
    // Get for amount for `drive`
}

そして、疑問に思っている人のために...はい、これは非常に単純で、おそらく時間がかかります.

于 2013-02-11T13:21:01.787 に答える