167上位机VC MFC设置文件只读隐藏等全部属性
167上位机VC MFC设置文件只读隐藏等全部属性
功能展示
文件的属性我们可以通过鼠标右键进行设置,也可以通过编写程序进行快速设置,我们当前例程实现指定文件只读隐藏归档等全部属性的操作,抛砖引玉,其他属性可参考MSDN进行设置,程序效果如图; 要点提示 文件的属性获取可以通过Cfile类的GetStatus(Status)函数实现;函数跟随一个Status为CFileStatus类型参数,通过Status.m_attribute&CFile::archive)==FILE_ATTRIBUTE_ARCHIVE便可知是否带有相应属性;
属性的设置可能通过SGetFileAttributes()与etFileAttributes()函数组合进行实现;
实现功能 1.新建基于对话框的应用程序 2.拖拽静态文件ID修改为IDC_NOTICE用于显示设置结果; 拖拽一编辑框ID为IDC_EDIT1用于显示要操作文件的绝对路径; 按例程界面拖拽几个按钮控件 ,用于实现相应操作功能;
3.全部按钮关联函数void CGkbc8Dlg::OnOpen() - void CGkbc8Dlg::OnOpen()
- {
- CFileDialog Dlg(TRUE,NULL,NULL,NULL,NULL,this);
- if(Dlg.DoModal()==IDCANCEL)
- return;
- SetDlgItemText(IDC_EDIT1,Dlg.GetPathName());
- }
- void CGkbc8Dlg::OnGetreadonly() //获取只读属性
- {
- CString sFileName;
- GetDlgItemText(IDC_EDIT1,sFileName);
- CFileStatus Status;
- if(CFile::GetStatus(sFileName,Status))
- {
- if((Status.m_attribute&CFile::readOnly)==FILE_ATTRIBUTE_READONLY)
- SetDlgItemText(IDC_NOTICE,"文件设置了只读属性");
- else
- SetDlgItemText(IDC_NOTICE,"文件未被设置只读属性");
- }
- }
复制代码- void CGkbc8Dlg::OnSetreadonly() //设置只读属性
- {
- CString sFileName;
- GetDlgItemText(IDC_EDIT1,sFileName);
- DWORD dwAttrs;
- dwAttrs = GetFileAttributes(sFileName);
- if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
- {
- if(SetFileAttributes(sFileName,dwAttrs|FILE_ATTRIBUTE_READONLY))
- SetDlgItemText(IDC_NOTICE,"成功设置了文件只读属性");
- else
- SetDlgItemText(IDC_NOTICE,"失败设置了文件只读属性");
- }
- else
- SetDlgItemText(IDC_NOTICE,"文件已带有只读属性");
- }
- void CGkbc8Dlg::OnGethide() //获取隐藏属性
- {
- CString sFileName;
- GetDlgItemText(IDC_EDIT1,sFileName);
- CFileStatus Status;
- if(CFile::GetStatus(sFileName,Status))
- {
- if((Status.m_attribute&CFile::hidden)==FILE_ATTRIBUTE_HIDDEN)
- SetDlgItemText(IDC_NOTICE,"文件设置了隐藏属性");
- else
- SetDlgItemText(IDC_NOTICE,"文件未设置隐藏属性");
- }
- }
复制代码 其他函数代码参数例程 我们来演示下功能实现的整个过程
|