调用这个函数,可以得到如"C:/"加一个空格再加后面的盘符连接起来的字符串缓冲区,我们可以通过这个缓冲

区来枚举系统逻辑磁盘。

函数原型
DWORD GetLogicalDriveStrings(DWORD nBufferLength,LPTSTR lpBuffer)

如果函数调用成功,将返回使用的缓冲区长度;调用失败时函数将返回0。

下面是函数的使用方法:
//这个函数将填充一个只包含盘符名称的单向链表
typedef struct _DiskSymbol
{
    wstring     Symbol;
    _DiskSymbol NextSymbol;
}DiskSymbol,*PDiskSymbol;


PDiskSymbol getDiskSymbol()
{
    PDiskSymbol pDiskSymbol;
    wchar_t drv[120];
    if(GetLogicalDriveStrings(sizeof(drv),drv)!=0) {
        wchar_t *pSymbol=drv;
        pDiskSymbol=new DiskSymbol;
        pDiskSymbolFirst=pDiskSymbol;
        for(;*pSymbol!=NULL;pSymbol=pSymbol+4)
        {
            pDiskSymbol->NextSymbol=new DiskSymbol;
            pDiskSymbol=pDiskSymbol->NextSymbol;
            pDiskSymbol->Symbol=pSymbol;
        }
        return pDiskSymbolFirst;
    }
    else {
        return NULL;
    }
}

 

posted on 2015-03-23 13:56  了无尘  阅读(618)  评论(0编辑  收藏  举报