获取磁盘符信息

项目中有个子模块是ftp客户端,需要罗列本地各个磁盘符,比如C盘、D盘、E盘、F盘。然后进行一些相关的上传下载就比较方便,具体样子如下所示:
这里写图片描述
需要利用一个Combox控件实现。
废话不多说,先上代码:

void  CFTPCilentDlg::Getlocaldrv()
{
    //获取所有盘符
    m_comlocal.ResetContent();   //清除目前所有项
    TCHAR szBuf[100];
    memset(szBuf,0,100);

    DWORD len=GetLogicalDriveStrings(sizeof(szBuf)/sizeof(TCHAR),szBuf);
    for (TCHAR * s= szBuf;*s;s+=_tcslen(s)+1)
    {
        //MessageBox(sDrivePath);
        CString k = s;
        m_comlocal.AddString(k);
    }

    m_comlocal.SetCurSel(0);    //设置0项为显示的内容
}

代码中的m_comlocal是Combox控件关联的控件变量,ResetContent()和AddString()是对该控件的操作。所以其中核心的函数是GetLogicalDriveStrings()函数。那我就对这个函数简单介绍一下:
定义:

DWORD GetLogicalDriveStrings(

  DWORD nBufferLength,

  LPTSTR lpBuffer

);

获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
返回值
返回保存所有数据所需要的字节数。应该总是比较返回值与参数cchBuffer的大小。
参数表
参数 类型及说明
DODOWRD cchBuffer,缓冲区的大小
LPTSTR lpszBuffer,用于装载逻辑驱动器名称的字串。每个名字都用一个NULL字符分隔,在最后一个名字后面用两个NULL表示中止(空中止) 例如A:\C:\
用法其实很简单。我的项目中做到这里其实就已经可以了。关于扩展的一些功能我引用别人的博客:http://www.cnblogs.com/qq78292959/archive/2012/06/12/2546914.html

1.获取系统中逻辑驱动器的数量

The GetLogicalDrives function retrieves a bitmask representing the currently available disk drives.

DWORD GetLogicalDrives(void);

2.获取所有驱动器字符串信息

The GetLogicalDriveStrings function fills a buffer with strings that specify valid drives in the system.

DWORD GetLogicalDriveStrings(

DWORD nBufferLength,

LPTSTR lpBuffer

);

3.获取驱动器类型

The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.

UINT GetDriveType(

LPCTSTR lpRootPathName

);

  1. 获取驱动器磁盘的空间状态,函数返回的是个BOOL类型数据

The GetDiskFreeSpaceEx function retrieves information about the amount of space available on a disk volume: the total amount of space, the total amount of free space, and the total amount of free space available to the user associated with the calling thread.

BOOL GetDiskFreeSpaceEx(

LPCTSTR lpDirectoryName,

PULARGE_INTEGER lpFreeBytesAvailable,

PULARGE_INTEGER lpTotalNumberOfBytes,

PULARGE_INTEGER lpTotalNumberOfFreeBytes

);
利用上面的四五个函数基本可以实现对磁盘符的操作。因为我的项目中只是需要罗列磁盘符,然后根据Combox控件中选择的磁盘,罗列该磁盘目录下的文件目录:
这里写图片描述
这里写图片描述

关于如何罗列每个磁盘符下面的文件目录路,我在后面的博客会写到。
OK,到此!
 
             拙见,小记!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值