用C++编程获取驱动器盘符(二)
来源:互联网 发布:知止而后有定的意思 编辑:程序博客网 时间:2024/05/18 20:50
这里通过GetLogicalDriveStrings函数获取驱动器盘符
函数原型:
DWORD GetLogicalDriveStrings(DWORD cchBuffer,LPTSTR lpszBuffer)
功能:以字符串的形式获取当前系统中所有逻辑驱动器盘符。
获取字符串的格式为:每个驱动器盘符的名字都用一个NULL字符分隔,在最后一个名字后面用两个NULL表示中止(空中止)
例如C:\NULLD:\NULLE:\NULLF:\NULLNULL
参数:
cchBuffer:缓冲区的大小
lpszBuffer:用于装载逻辑驱动器名称的字符串缓冲区
控制台程序示例:
#include "stdafx.h"#include <STRING>#include <TCHAR.H>#include <WINDOWS.H>int main(int argc, char* argv[]){// 获取实际存储驱动器号的字符串长度DWORD dw = ::GetLogicalDriveStrings(0, NULL);// 申请内存空间(即存储字符串的缓冲区)LPSTR lpDriveString = (LPSTR)HeapAlloc( GetProcessHeap(), 0, dw * sizeof(DWORD) );// 获取驱动器盘符(返回值为:获取字符串的长度,不包括最后一个NULL的长度)DWORD dwSize = GetLogicalDriveStrings(dw, lpDriveString);while(lpDriveString!=0){// 创建一个指向lpDriveString的引用,目的:通过查找lpDriveString中的“:\\”子串,来判断是否还有盘符输出std::string &strTemp = (std::string)lpDriveString;// find:查找“:\\”子串,如果没有找到,就返回string::npos值if (strTemp.find(":\\") == std::string::npos)break;// 打印盘符printf("%s\n", lpDriveString);// 在lpDriveString中查找0,,如果找到,返回0在lpDriveString中的位置,否则返回NULLlpDriveString=_tcschr(lpDriveString,0)+1;}return 0;}
MFC程序示例:
void CADlg::OnButton1() {// TODO: Add your control notification handler code hereDWORD dwNumBytesForDrivesString;HANDLE hHeap;LPSTR lp;CString strLogdrive;//获取实际存储驱动器号的字符串长度dwNumBytesForDrivesString=GetLogicalDriveStrings(0,NULL)*sizeof(TCHAR);//如果字符串不为空,则表示有正常的驱动器存在if (dwNumBytesForDrivesString!=0){//非配字符串空间hHeap=GetProcessHeap();lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,dwNumBytesForDrivesString);//获取标明所有驱动器的字符串GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);//将驱动器一个个输出while(lp!=0){ if (((CString)lp).Find(":\\")==-1){return;}MessageBox(lp);lp=_tcschr(lp,0)+1;}}else{MessageBox("Can't User The Function GetLogicalDriveStrings!"); }}
- 用C++编程获取驱动器盘符(二)
- 用C++编程获取驱动器盘符(一)
- 如何用编程获取CD-ROM的驱动器盘符?
- C#获取驱动器盘符
- 基于visual c++之windows核心编程代码分析(23)遍历驱动器并获取驱动器属性
- 基于visual c++之windows核心编程代码分析(23)遍历驱动器并获取驱动器属性
- 利用GetLogicalDrives和GetDriveType获取驱动器盘符及类型
- 利用GetLogicalDrives和GetDriveType获取驱动器盘符及类型
- 逻辑驱动器个数和盘符获取GetLogicalDrives和GetLogicalDriverStrings
- C++ Windows API获取驱动器根路径和属性(二)
- 提取驱动器盘符
- C/C++ 获取当前所有逻辑驱动器的根驱动器路径
- VC中如何获取当前计算机中所有逻辑驱动器的数目和盘符
- VC中获取当前计算机中所有逻辑驱动器的数目和盘符
- VC++获取U盘盘符(各种类型的驱动器都可以)
- 获取驱动器序列号
- 获取逻辑驱动器信息
- 用C#和WMI获取逻辑驱动器详细信息(驱动器类型,文件系统,剩余空间等)
- 黑马程序员--面向对象
- float类型存储的浮点表示法
- 脚本语言开发平台Script.NET正式开源
- 怎样快速搜索一部好电影
- 在ubuntu上安装Opencv
- 用C++编程获取驱动器盘符(二)
- iOS loading page
- html中iframe控制父页面刷新
- 码农慎入,LZ最近遇到的狗血经历
- Excel地址转换
- Eclipse+PyDev插件
- Effective C++ 读书笔记(1)
- poj 2049 Finding Nemo (坑爹的搜索题)
- 黑马程序员_其他对象System