欢迎来到天天文库
浏览记录
ID:40239742
大小:1.48 MB
页数:114页
时间:2019-07-28
《Windows系统编程 李晓黎 第5章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows系统编程实用教程授课教师:职务:第5章文件系统编程课程描述文件系统是操作系统的重要组成部分,它用于明确磁盘或分区上文件的组织形式和保存方法。在应用程序中,文件是保存数据的重要途径之一。经常需要创建文件保存数据,或从文件中读取数据。为了更方便地管理文件,有时还要创建目录。本章将介绍Windows文件系统编程的方法。本章知识点5.1磁盘驱动器编程5.2目录编程5.3文件编程5.1磁盘驱动器编程5.1.1获取当前系统中的逻辑磁盘驱动器5.1.2获取磁盘驱动器的信息5.1.1获取当前系统中的逻辑
2、磁盘驱动器GetLogicalDriveStrings()函数用于获取当前系统中的逻辑磁盘驱动器,函数原型如下:DWORDWINAPIGetLogicalDriveStrings(__inDWORDnBufferLength,__outLPTSTRlpBuffer);参数说明如下:nBufferLength,参数lpBuffer所指向的缓冲区的大小。lpBuffer,用于保存返回的逻辑磁盘驱动器列表。lpBuffer指向一系列以null结束的字符串,每个字符串表示一个磁盘驱动器对应的盘符根目录。格式如
3、下;C:ullD:ull……X:ull【例5.1】设计一个选择逻辑磁盘驱动器的对话框。创建一个基于对话框的MFC项目SelectDiskDriver。默认创建的对话框的ID是IDD_SELECTDISKDRIVER_DIALOG,对应的类为CSelectDiskDriverDlg。对话框IDD_SELECTDISKDRIVER_DIALOG包含一个ComboBox控件IDC_COMBO_DRIVE,对话框的设计布局如图5.1所示。CSelectDiskDriverDlg::OnInitDi
4、alog()函数//TODO:在此添加额外的初始化代码//第1次调用GetLogicalDriveStrings(),获取返回缓冲区的大小size_talldrive=::GetLogicalDriveStrings(0,NULL);_TCHAR*driverstr;driverstr=new_TCHAR[alldrive+sizeof(_T(""))];//printf("AllDrivesizeis:%dr",alldrive);//第次调用GetLogicalDriveStrings(),
5、获取实际的逻辑磁盘驱动器字符串size_ttwosize=GetLogicalDriveStrings(alldrive,driverstr);CStringDriveLetter;//由于driverstr内保存的数据是A:ullB:ullC:ull,每4个字符截取一个逻辑磁盘驱动器字符串。for(inti=0;i6、));}m_drive.SetCurSel(0);【例5.1】的运行界面单击“确定”按钮对应的代码voidCSelectDiskDriverDlg::OnBnClickedOk(){//TODO:在此添加控件通知处理程序代码CStringstrDrive;m_drive.GetWindowTextW(strDrive);this->MessageBox(strDrive.GetBuffer());OnOK();}5.1.2获取磁盘驱动器的信息1.获取磁盘驱动器的类型2.获取磁盘的空闲空间1.获取磁盘驱7、动器的类型GetDriveType()函数可以获取磁盘驱动器的类型,函数原型如下;UINTWINAPIGetDriveType(__inLPCTSTRlpRootPathName//磁盘驱动器的根路径,格式为“X:\”);GetDriveType()函数的返回值代表磁盘驱动器类型的常量说明DRIVE_UNKNOWN未知DRIVE_NO_ROOT_DIR参数lpRootPathName指定的根路径无效DRIVE_REMOVABLE可移动磁盘DRIVE_FIXED固定磁盘(硬盘)DRIVE_REMOTE8、网络磁盘DRIVE_CDROMCD-ROM驱动器DRIVE_RAMDISKRAM磁盘驱动器【例5.2】在例5.1的基础上增加功能,当用户选择磁盘驱动器时获取并显示其类型。首先在对话框IDD_SELECTDISKDRIVER_DIALOG中添加一个StaticText控件,用于先磁盘驱动器的类型。然后为其添加变量m_DriveType,定义代码如下:CStringm_DriveType;OnCbnSelchangeComboDrive()voidCSele
6、));}m_drive.SetCurSel(0);【例5.1】的运行界面单击“确定”按钮对应的代码voidCSelectDiskDriverDlg::OnBnClickedOk(){//TODO:在此添加控件通知处理程序代码CStringstrDrive;m_drive.GetWindowTextW(strDrive);this->MessageBox(strDrive.GetBuffer());OnOK();}5.1.2获取磁盘驱动器的信息1.获取磁盘驱动器的类型2.获取磁盘的空闲空间1.获取磁盘驱
7、动器的类型GetDriveType()函数可以获取磁盘驱动器的类型,函数原型如下;UINTWINAPIGetDriveType(__inLPCTSTRlpRootPathName//磁盘驱动器的根路径,格式为“X:\”);GetDriveType()函数的返回值代表磁盘驱动器类型的常量说明DRIVE_UNKNOWN未知DRIVE_NO_ROOT_DIR参数lpRootPathName指定的根路径无效DRIVE_REMOVABLE可移动磁盘DRIVE_FIXED固定磁盘(硬盘)DRIVE_REMOTE
8、网络磁盘DRIVE_CDROMCD-ROM驱动器DRIVE_RAMDISKRAM磁盘驱动器【例5.2】在例5.1的基础上增加功能,当用户选择磁盘驱动器时获取并显示其类型。首先在对话框IDD_SELECTDISKDRIVER_DIALOG中添加一个StaticText控件,用于先磁盘驱动器的类型。然后为其添加变量m_DriveType,定义代码如下:CStringm_DriveType;OnCbnSelchangeComboDrive()voidCSele
此文档下载收益归作者所有