185上位机VC MFC隐藏文件或批量隐藏指定文件
185上位机VC MFC隐藏文件或批量隐藏指定文件
功能展示
在开发上位机程序时,有时会将重要文件进行隐藏避免用户误操作文件,比如编辑修改文件或删除文件,我们就得编写代码实现指定文件隐藏,当前例程就实现指定文件批量隐藏功能,选择要隐藏的文件会罗列在列表框中,点击隐藏会隐藏列表框中文件,效果如图; 要点提示 我们当前例程通过CFileDialog类进行多文件的选择,然后再将选择的文件隐藏,多文件一次性选择可以在此类构造时指定它的第四个参数带有OFN_ALLOWMULTISELECT,如我们当前例程形式 CFileDialogDlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"全部类型(*.*)|*.*||"); 同时选择文件的最多个数可以通过设置类成员变量m_ofn.nMaxFile及Dlg.m_ofn.lpstrFile的参数来实现具体看例程; 设置文件的隐藏属性可以用函数SetFileAttributes(),函数跟随两参数,第一参数为要指定的文件,第二参数为要设定的文件属性,文件的隐藏属性为FILE_ATTRIBUTE_HIDDEN;
实现功能 1.新建基于对话框的应用程序 2.拖拽两按钮控件关联函数用于实现要设置隐藏文件的选择与属性设置; 拖拽一列表框控件ID为IDC_LIST1,实现要设置文件的显示;
按钮代码为 - void CGkbc8Dlg::OnAdd()
- {
- CFileDialog Dlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"全部类型(*.*)|*.*||");
- DWORD MAXFILE = 20 * MAX_PATH;//20个文件一次选择
- char* pStrFile = new char[MAXFILE];
- Dlg.m_ofn.nMaxFile = MAXFILE;
- Dlg.m_ofn.lpstrFile = pStrFile;
- Dlg.m_ofn.lpstrFile[0] = NULL;
- if(Dlg.DoModal() == IDOK)
- {
- CListBox* pListBox= (CListBox*)GetDlgItem(IDC_LIST1);
- pListBox->SetHorizontalExtent(900);
- CString sText;
- POSITION pos;
- pos = Dlg.GetStartPosition();
- while(pos)
- {
- sText = Dlg.GetNextPathName(pos);
- pListBox->InsertString(0,sText);
- }
- }
- delete pStrFile;
- }
复制代码- void CGkbc8Dlg::OnHide()
- {
- CString sFileName;
- CListBox* pListBox= (CListBox*)GetDlgItem(IDC_LIST1);//获取列表框IDC_LIST1的窗口指针
- int nCount = pListBox->GetCount();//列表框文本列数
- for(int i = 0;i<nCount;i++)
- {
- pListBox->GetText(i,sFileName);
- SetFileAttributes(sFileName,FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM);//设置文件属性隐藏
- }
- pListBox->ResetContent();
- }
复制代码我们来演示下功能实现的整个过程
|