VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
来源:互联网 发布:linux命令终端log输出 编辑:程序博客网 时间:2024/05/22 08:24
考完六级心情大好,去论坛逛了逛,做了几个作业,总结下用到的函数和方法
整体功能如下:
其中还有获取当前系统时间并格式化输出的功能,界面上没有体现出来。
窗口界面控件统计及关联变量如下:
编辑框:ID: IDC_EDIT_FILEPATH
属性设置:
只读:CheckBox 控件 关联变量:BOOL m_IsReadOnly 隐藏 :CheckBox 关联变量:BOOL m_IsHidden
文件时间自定义:
创建时间:Date Time Picker 控件 关联变量:控件变量 m_CreateTime
创建时间:Date Time Picker 控件 关联变量:控件变量 m_ModifyTime
为框架类添加成员变量: CString m_filepath
功能函数:
一,让对话框支持通过拖放方式选择文件
1,首先设置对话框的:Accept Files: True
2, 对话框.h中(消息映射表中)添加
afx_msg void OnDropFiles(HDROP hDropInfo);
3, .cpp,消息map中添加
ON_WM_DROPFILES()
void CXXXXDlg::OnDropFiles(HDROP hDropInfo) { // TODO: Add your message handler code here and/or call default CString filename; DragQueryFile(hDropInfo,0,filename.GetBuffer(512),512); filename.ReleaseBuffer(); m_filepath = filename; SetDlgItemText(IDC_EDIT_FILEPATH,m_filepath); CDialog::OnDropFiles(hDropInfo);}
二,点击选择按钮,弹出文件选择对话框,设置在列表中显示的文件类型
void CXXXXDlg::OnBnClickedBtnSelectfile(){// TODO: 在此添加控件通知处理程序代码CFileDialog fileDlg(true);fileDlg.m_ofn.lpstrTitle = "选择你要设置的文件";fileDlg.m_ofn.lpstrFilter = "Executeable File(*.exe)\0*.exe\0All Files(*.*)\0*.*\0\0";if(IDOK==fileDlg.DoModal()){m_filepath = fileDlg.GetPathName();SetDlgItemText(IDC_EDIT_FILEPATH,m_filepath);}}
三,接收用户的选择,单击“设置属性“按钮设置文件的只读和隐藏属性
void CXXXXDlg::OnBnClickedBtnSetattr(){// TODO: 在此添加控件通知处理程序代码UpdateData();if(m_filepath == ""){MessageBox("请先选择文件","错误",MB_OK);return;}DWORD FileAttr = GetFileAttributes(m_filepath); //获取文件默认属性if(INVALID_FILE_ATTRIBUTES == FileAttr ){//获取属性失败(文件不存在)MessageBox("获取文件信息失败!","错误",MB_OK);return;}else{if(m_IsReadOnly){//若选择了checkbox的只读则追加只读属性SetFileAttributes(m_filepath,FileAttr | FILE_ATTRIBUTE_READONLY); //和原来的属性按位与}if(m_IsHidden){//若选择了checkbox的隐藏则追加隐藏属性SetFileAttributes(m_filepath,FileAttr | FILE_ATTRIBUTE_HIDDEN);} CTime t = CTime::GetCurrentTime();//获得当前系统时间CString strTime =t.Format("%A, %B %d, %Y,%H:%M:%S");//格式化得到的时间MessageBox("设置文件属性成功!",strTime,MB_OK);}}
四,文件时间自定义
void Cxiao7_2Dlg::OnBnClickedBtnModify(){// TODO: 在此添加控件通知处理程序代码UpdateData(true);SYSTEMTIME CreateTime,ModifyTime;m_CreateTime.GetTime(&CreateTime);//从界面DateTimePicker控件接受用户选选择的时间m_ModifyTime.GetTime(&ModifyTime);if(m_filepath != ""){FILETIME fCreateTime,fModifyTime;//系统时间转换为文件时间,注意:只能转换为文件时间才能设置其时间SystemTimeToFileTime(&CreateTime,&fCreateTime);SystemTimeToFileTime(&CreateTime,&fModifyTime);//创建CFile对象,CFile是MFC封装好的类,用SDK的同学注意一下CFile file(m_filepath,CFile::modeWrite);//设置文件时间,四个参数:文件句柄,创建时间,最后访问时间,最后修改时间SetFileTime(file,&fCreateTime,NULL,&fModifyTime);MessageBox("修改文件时间成功!","提示",MB_OK);}else{MessageBox("请先选择文件","错误",MB_OK);}}
注意此处设置的时间比实际要提前一天
源代码:
http://download.csdn.net/detail/eldn__/4920173
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- C++ win环境修改文件创建时间、最后的修改时间和最后的访问时间
- java获得文件的创建和最后访问修改时间
- 获取文件创建时间、最后修改时间、访问时间
- pb9获取文件创建时间、最后修改时间及设置最后修改时间的方法
- [原]VC实现修改文件创建、访问、修改时间属性
- 文件最后修改时间
- 获取文件最后修改时间的VC代码
- 获取文件最后修改时间的VC代码
- java 得到文件最后的修改时间
- java获取文件最后的修改时间
- java实现根据文件最后的修改时间排序
- java修改文件或者目录的最后修改时间
- Java中如何得到文件的创建时间&最后修改时间
- Java读取文件创建时间和最后修改时间
- Java读取文件创建时间和最后修改时间
- 文件的大小、创建时间、修改时间和访问时间
- javascript 中 this 对象
- 0-1背包问题
- x86/i386/i686/i86_64
- C#插入排序和折半排序算法
- 一些常见svn图标的含义
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- Linux内核链表的研究与应用
- 草根程序员转型做项目管理走过的点点滴滴之三人团队
- wp8安装过程中的几个界面
- eclipse 调试技巧
- hdu 1869(最短路flody-六度分离)
- c++学习之C++设计的两个基本原则
- FFPLAY的原理
- Android 升级SDK管理器版本到20,安装Android 4.0以及更高版本