以下のリンクを使用すると、ハードディスクの空き容量を確保できます。
しかし、セカンダリ ハードディスクを接続すると、その詳細が表示されません。
ハードディスクの数をループしてスペースを取得するにはどうすればよいですか?
ループセクターでそれを取得したいと思います。ハードディスクの数を取得し、harddisk1 のドライブをループしてから、harddisk2 のドライブをループします。
以下のリンクを使用すると、ハードディスクの空き容量を確保できます。
しかし、セカンダリ ハードディスクを接続すると、その詳細が表示されません。
ハードディスクの数をループしてスペースを取得するにはどうすればよいですか?
ループセクターでそれを取得したいと思います。ハードディスクの数を取得し、harddisk1 のドライブをループしてから、harddisk2 のドライブをループします。
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
どうですか:
for (char drive = 'a'; drive <= 'z'; drive++)
{
// Get for amount for `drive`
}
そして、疑問に思っている人のために...はい、これは非常に単純で、おそらく時間がかかります.