首页 > 其他分享 >无涯教程-MFC - 文件系统

无涯教程-MFC - 文件系统

时间:2023-12-10 23:32:15浏览次数:31  
标签:MFC 单击 步骤 无涯 文件系统 CArchive file 按钮 目录

在本章中,无涯教程将讨论文件系统的各个组成部分。

Drives驱动

驱动器是连接到计算机的物理设备,因此它可以存储信息,逻辑磁盘,逻辑卷或虚拟磁盘(简称VD或vdisk)是一种虚拟设备,可在计算机系统中的一个或多个物理磁盘驱动器上提供可用存储区域。驱动器可以是硬盘,CD ROM,DVD ROM,闪存(USB)驱动器,存储卡等。

您要执行的主要操作之一是获取计算机上的驱动器列表。

通过创建一个新的基于MFC对话框的应用程序来研究一个简单的示例。

步骤1 - 从工具箱中拖动一个按钮,将其标题更改为“Get Drives Info”。

步骤2  - 删除静态控件的标题(TODO行)并将其ID更改为IDC_STATIC_TEXT。

Static Caption

步骤3 - 右键单击按钮,然后选择添加事件处理程序。

Static Caption

步骤4 - 选择BN_CLICKED消息类型,然后单击"Add and Edit"按钮。

步骤5 - 为静态文本控件添加值变量m_strDrives。

Static Caption

为了支持计算机上的驱动器,Win32库提供了Microsoft Window的GetLogicalDrives()函数,该函数将检索当前计算机上所有驱动器的列表。

步骤6 - 编译并执行上述代码后,您将看到以下输出。

Static Caption

步骤7 - 单击按钮时,您可以看到计算机上的所有驱动器。

Static Caption

Directories目录

在计算中,目录是文件系统的目录结构,其中包含对其他计算机文件以及可能对其他目录的引用。

通过创建一个新的基于MFC对话框的应用程序来研究一个简单的示例

步骤1 - 从工具箱中拖动三个按钮,更改其标题以创建目录,删除目录和移动目录。

步骤2 - 将这些按钮的ID更改为 IDC_BUTTON_CREATE , IDC_BUTTON_DELETE 和 IDC_BUTTON_MOVE 。

步骤3 - 删除TODO行。

目录

步骤4 -为每个按钮添加事件处理程序。

步骤5 - 要创建目录,可以调用Win32库的CreateDirectory()方法。

步骤6 - 这是"Crete"按钮事件处理程序的实现,将在其中创建一个目录,然后再创建两个子目录。

Directories

步骤7 - 要删除目录,可以调用Win32库的 RemoveDirectory()函数,这是删除按钮事件处理程序的实现。

void CMFCDirectoriesDemoDlg::OnBnClickedButtonDelete() {
   //TODO: Add your control notification handler code here
   if (RemoveDirectory(L"D:\\MFCDirectoryDEMO\\Dir1") == TRUE)
      AfxMessageBox(L"The directory has been deleted");
}

步骤8 - 如果要移动目录,还可以调用相同的MoveFile()函数,这是移动按钮事件处理程序的实现,在该实现中,无涯教程将创建第一个新目录,然后将Dir2移动到该目录。

void CMFCDirectoriesDemoDlg::OnBnClickedButtonMove() {
   //TODO: Add your control notification handler code here
   CreateDirectory(L"D:\\MFCDirectory", NULL);

   if (MoveFile(L"D:\\MFCDirectoryDEMO\\Dir1", L"D:\\MFCDirectory\\Dir1") == TRUE)
      AfxMessageBox(L"The directory has been moved");
}

步骤9 - 编译并执行上述代码后,您将看到以下输出。

目录

步骤10 - 单击"Create Directory"按钮时,它将创建这些目录。

目录

步骤11 - 单击"Delete Directory"按钮时,它将删除Dir1。

目录

File文件

MFC应用程序中的大多数文件处理是与名为 CArchive 的类一起执行的。 CArchive类充当应用程序和用于存储数据或使其可用的介质之间的中继,它允许永久的二进制形式(通常是磁盘存储)保存对象。

这是CArchive类中的方法列表-

这是用于存储和检索数据的运算符的列表

Sr.No. Name & 描述
1

operator <<

将对象和原始类型存储到存档中。

2

operator >>

从档案库加载对象和原始类型。

让无涯教程通过创建一个新的基于MFC对话框的应用程序来研究一个简单的示例。拖动一个编辑控件和两个按钮,如以下快照所示。

New MFC

步骤1 - 为"Open"和"Save"按钮添加单击事件处理程序。

步骤2 - 这是事件处理程序的实现。

void CMFCFileProcessingDlg::OnBnClickedButtonOpen() {
   //TODO: Add your control notification handler code here
   UpdateData(TRUE);
   
   CFile file;
   
   file.Open(L"ArchiveText.rpr", CFile::modeRead);
   if(file) {
      CArchive ar(&file, CArchive::load);
   
      ar >> m_strEdit;
   
      ar.Close();
      file.Close();
   }
   UpdateData(FALSE);
}

void CMFCFileProcessingDlg::OnBnClickedButtonSave() {
   //TODO: Add your control notification handler code here
   UpdateData(TRUE);

   if (m_strEdit.GetLength() == 0) {
      AfxMessageBox(L"You must enter the name of the text.");
      return;
   }
   CFile file;
   
   file.Open(L"ArchiveText.rpr", CFile::modeCreate | CFile::modeWrite);
   CArchive ar(&file, CArchive::store);
   ar << m_strEdit;
   
   ar.Close();
   file.Close();
}

步骤3 - 编译并执行上述代码后,您将看到以下输出。

New MFC

步骤4 - 写点东西,然后单击"Save"。它将以二进制格式保存数据。

New MFC

步骤5 - 从编辑控件中删除测试。单击"Open"时,观察到再次加载了相同的文本。

参考链接

https://www.learnfk.com/mfc/mfc-file-system.html

标签:MFC,单击,步骤,无涯,文件系统,CArchive,file,按钮,目录
From: https://blog.51cto.com/u_14033984/8763179

相关文章

  • /proc文件系统 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/filesystems/proc.html/proc文件系统/proc/sys作者:[email protected],[email protected]日期:1999年10月7日2.4.x更新作者:[email protected]日期:2000年11月14日移动/proc/sys作......
  • 无涯教程-MFC - 消息和事件
    应用程序由各种对象组成,大多数情况下,计算机上运行着多个应用程序,并且不断要求操作系统执行一些任务。Map消息由于Windows是面向消息的操作系统,因此Windows环境的大部分编程都涉及消息处理,每一个事件,例如一个键盘或鼠标点击发生时,一个消息被发送到该应用程序,然后必须处理该事件......
  • FUSE文件系统 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/filesystems/fuse.htmlFUSE定义用户空间文件系统:普通用户空间进程提供数据和元数据的文件系统。文件系统可以通过内核接口正常访问。文件系统守护进程:提供文件系统数据和元数据的进程。非特权挂载(或用户挂载):由非特权(非根用......
  • sysfs - 用于导出内核对象的_文件系统 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/filesystems/sysfs.htmlsysfs-_用于导出内核对象的_文件系统[email protected]@cs.clemson.edu修订日期2011年8月16日原始日期2003年1月10日它是什么sysfs是一个基于ramfs的基于RAM的文......
  • 无涯教程-MFC - 窗口控件
    Windows控件是用户可以与之交互以输入或操作数据的对象,它们通常出现在对话框或工具栏上。Sr.No.Controls&描述1StaticControl静态Static控件向用户显示信息,它可以用于显示颜色,几何形状或图片,如图标,位图或动画。2AnimationControl动画控件是一个以AVI格式显示音频剪......
  • MFC对话框显示时背景闪烁
    在显示一个对话框时,可以在WM_PAINT消息处理函数中绘制窗口的背景色。但会出现一种情况,在还未执行完OnPaint函数,对话框已经先显示出白色窗体,如下:还未绘制窗体,背景色先被显示。解决办法:1、添加WM_CTLCOLOR消息。2、在消息响应函数中添加如下代码:1HBRUSHCZGDlg::OnCtlColor......
  • 无涯教程-MFC - 控件管理
    在MFC应用程序中,以可视方式将控件添加到应用程序后,如果要在代码中引用它,则可以基于该控件或与该控件关联来声明变量。MFC库允许您为应用程序中使用的某些控件声明值或控件变量的两种类型的变量。一个变量用于存储在控件中的信息,也称为ControlVariable/Instance.另一个变量称......
  • MFC窗口闪烁问题
    本文引自:《VC窗口闪烁问题的解决》概述一般的windows复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小时候出现闪烁。闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上,而是写到了显存里,显卡......
  • 无涯教程-MFC - 对话框
    在本章中,无涯教程将介绍对话框(Dialog),Windows应用程序经常通过对话框与用户通信,CDialog类提供了用于管理对话框的界面,VisualC++对话框编辑器使设计对话框和创建其对话框模板资源变得容易。创建对话3对象是两阶段操作-构造对话框对象。创建对话框窗口。通过创建一个新的W......
  • 无涯教程-MFC - 环境设置
    MicrosoftVisualC++是用于为MicrosoftWindows操作系统创建应用程序的编程环境。要在C++应用程序中使用MFC框架,必须已安装MicrosoftVisualC++或MicrosoftVisualStudio,MicrosoftVisualStudio还包含MicrosoftVisualC++环境。Microsoft提供了VisualStudio的免费版......