我的一个程序需要帮助,该程序可以提取系统上的可用驱动器并打印有关驱动器的各种信息。我正在使用 VC++,对 C++ 还很陌生,需要一些高级输入或经验丰富的程序员的示例代码。
这是我当前的源代码:
#include "stdafx.h"
#include Windows.h
#include stdio.h
#include iostream
using namespace std;
int main()
{
// Initial Dummy drive
WCHAR myDrives[] = L" A";
// Get the logical drive bitmask (1st drive at bit position 0, 2nd drive at bit position 1... so on)
DWORD myDrivesBitMask = GetLogicalDrives();
// Verifying the returned drive mask
if(myDrivesBitMask == 0)
wprintf(L"GetLogicalDrives() failed with error code: %d\n", GetLastError());
else {
wprintf(L"This machine has the following logical drives:\n");
while(myDrivesBitMask) {
// Use the bitwise AND with 1 to identify
// whether there is a drive present or not.
if(myDrivesBitMask & 1) {
// Printing out the available drives
wprintf(L"drive %s\n", myDrives);
}
// increment counter for the next available drive.
myDrives[1]++;
// shift the bitmask binary right
myDrivesBitMask >>= 1;
}
wprintf(L"\n");
}
system("pause");
}
` - 这是输出 -
This machine has the following logical drives:
drive C
drive D
drive E
drive F
drive G
drive H
drive I
我需要输出关于每个驱动器的附加信息(也许一个例子会在更短的时间内讲述这个故事):
驱动器 - C:\ 驱动器类型:固定驱动器就绪状态:真实卷标:引导驱动器文件系统类型:NTFS 可用空间:30021926912 总驱动器大小:240055742464
驱动器 – D:\ 驱动器类型:固定驱动器就绪状态:真实卷标:应用程序数据文件系统类型:NTFS 可用空间:42462507008 总驱动器大小:240054693888
我可以使用哪些方法、libs api 等来提取驱动器类型、驱动器状态、卷标、文件系统类型、可用空间和驱动器总大小?
*旁注,我注意到我的预处理器指令存在缺陷,特别是在标准 I/O 头文件中。我知道这不是使用 printf 的推荐方式,并且 cout 是类型安全的,并且是正确的路径,但我无法弄清楚如何在 cout 中格式化输出,就像你在wprintf(L"drive %s\n", myDrives);.... so how would you do this with cout??
提前致谢。