1. 程式人生 > >Windows API 第17篇 GetLogicalDriveStrings 獲取本機所有邏輯驅動器,以根目錄的形式表示

Windows API 第17篇 GetLogicalDriveStrings 獲取本機所有邏輯驅動器,以根目錄的形式表示

style 目錄 spa () buffer word string clas 根目錄

函數原型:
DWORD GetLogicalDriveStrings( DWORD nBufferLength, // size of buffer
LPTSTR lpBuffer // drive strings buffer
);
說明:
參數不多講,需要註意函數返回存入lpBuffer空間的字符個數,不包括‘\0‘.
在lpBuffer內存中,驅動器的存放形式形如:

c : \ 0 D : \ 0 E : \ 0 0 0 0 0

所以用的時候要註意指針的調整:
下面舉一例:
本示例枚舉本機所有邏輯驅動器,並且把驅動器分離出來:

void main()
{
    CHAR szDriveBuf[MAX_PATH] = { 0 };
    DWORD dwLen = GetLogicalDriveStringsA(MAX_PATH * sizeof(CHAR), szDriveBuf);
    LPSTR pDrive = szDriveBuf;
    while (pDrive)
    {
        string strDriver = pDrive;
        pDrive += 4;   //這裏就要註意了,如果不懂就看看上面的那個內存圖
    }
}

Windows API 第17篇 GetLogicalDriveStrings 獲取本機所有邏輯驅動器,以根目錄的形式表示