工控编程吧
标题:
168上位机VC MFC获取系统文件的大小及类型
[打印本页]
作者:
qq263946146
时间:
2016-1-15 21:25
标题:
168上位机VC MFC获取系统文件的大小及类型
(, 下载次数: 2)
上传
点击文件名下载附件
168上位机VC MFC获取系统文件的大小及类型
功能展示
在文件的相应操作中文件大小及类型的获取也是常用到的功能,当前例程实现的获取指定文件的大小,文件类型,及系统当前所有文件类型的获取后的保;效果如图;
要点提示
指定文件类型的获取可以用函数SHGetFileInfo() 函数原型为WINSHELLAPI DWORD WINAPISHGetFileInfo( LPCTSTR pszPath, DWORD dwFileAttributes, SHFILEINFO FAR *psfi,UINT cbFileInfo, UINT uFlags ); pszPath为指定文件的路径, dwFileAttributes为接收信息的结构体SHFILEINFO,cbFileInfo 为接收的字节数以形式sizeof(SHFILEINFO)填充; uFlags 为要获取的信息类型当前例程为SHGFI_TYPENAME;
当前系统全部文件类型的获取可以用函数RegEnumKey()具体的使用参考例程学习;
实现功能
1.新建基于对话框的应用程序
2.拖拽一静态文件ID修改为IDC_NOTE用于显示操作结果信息;
拖拽一编辑框ID为IDC_EDIT1用于显示要处理的文件路径 ;
拖拽几个按钮控件,依次实现文件打开,文件大小,文件类型,系统文件类型获取功能;
void CGkbc8Dlg::OnOpen()
{
CFileDialog Dlg(TRUE,NULL,NULL,NULL,NULL,this);
if(Dlg.DoModal()==IDCANCEL)
return;
SetDlgItemText(IDC_EDIT1,Dlg.GetPathName());
}
void CGkbc8Dlg::OnFilesize()
{
CString sPath;
GetDlgItemText(IDC_EDIT1,sPath);
CFileStatus Status;
CString sFileSize;
if(CFile::GetStatus(sPath,Status))
{
sFileSize.Format("文件大小:%d 字节",Status.m_size);
SetDlgItemText(IDC_NOTE,sFileSize);
}
}
复制代码
void CGkbc8Dlg::OnType()
{
CString sPath;
GetDlgItemText(IDC_EDIT1,sPath);
CString sTypeScript;
SHFILEINFO SFileInfo;
SHGetFileInfo(sPath,NULL,&SFileInfo,sizeof(SHFILEINFO),SHGFI_TYPENAME);
sTypeScript=SFileInfo.szTypeName;
sPath="文件类型描述:";
sPath +=sTypeScript;
SetDlgItemText(IDC_NOTE,sPath);
}
复制代码
我们来演示下功能实现的整个过程
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4