网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用Visual C++实现改变指定的文件和文件夹的属性
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
  
  
文件产生时间秒编辑框,变量类型BOOL,名称m_CSECOND;  
  
文件产生时间年编辑框,变量类型BOOL,名称m_CYEAR;   
  
修改文件修改时间检查框,变量类型BOOL,名称m_MODIFY;   
  
文件修改时间日编辑框,变量类型BOOL,名称m_MDAY;   
  
文件修改时间时编辑框,变量类型BOOL,名称m_MHOUR;   
  
文件修改时间分编辑框,变量类型BOOL,名称m_MMINUTE;   
  
文件修改时间月编辑框,变量类型BOOL,名称m_MMONTH;   
  
文件修改时间秒编辑框,变量类型BOOL,名称m_MSECOND;   
  
文件修改时间年编辑框,变量类型BOOL,名称m_MYEAR;   
  
修改文件属性检查框,变量类型BOOL,名称m_PROPERTY;   
  
文件隐藏属性检查框,变量类型BOOL,名称m_HIDE;   
  
文件只读属性检查框,变量类型BOOL,名称m_READ;   
  
文件存档属性检查框,变量类型BOOL,名称m_SAVE;   
  
文件系统属性检查框,变量类型BOOL,名称m_SYSTEM;   
  
执行更改的按钮,点击该按钮后执行选定的更改操作。  
  
以上成员变量可在对话类的构造函数中用当前系统时间予以初始化。  
  
  
  
---- 2、在对话类中加入以下成员:   
  
  
  
char filter[16];   
  
int ChangeTheProperty(LPSTR Filename,BYTE bFlag=0) ;   
  
其中成员变量filter用以存放带通配符的文件名。  
  
成员函数ChangeTheProperty中实现了带通配符的文件的属性的改变,考虑到要遍历子目录,  
  
该函数采用了递归调用,并请注意参数bFlag,其缺省值为0,  
  
1表示调用发生自子目录。其实现如下:  
  
int CChangePropertyDlg::Change   
  
TheProperty(LPSTR FileName,BYTE bFlag)   
  
{   
  
////存放路径  
  
char pathname[MAX_PATH];   
  
////存放全路径文件名  
  
char allname[MAX_PATH];   
  
////初始化pathname   
  
int num=strlen(FileName);   
  
for(int i=num-1;i>=0;i--){   
  
if(FileName[i]==''\\'')   
  
break;   
  
}   
  
if(i==-1)   
  
return 0;   
  
strncpy(pathname,FileName,i+1);   
  
pathname[i+1]=''\0'';   
  
////查找并修改所有子目录下符合条件的文件  
  
DWORD stat=0;   
  
WIN32_FIND_DATA fileinfo;   
  
if(bFlag){   
  
char DFileName[MAX_PATH];   
  
strcpy(DFileName,pathname);   
  
strcat(DFileName,"*.*");   
  
HANDLE handle=FindFirstFile   
  
(DFileName, &fileinfo);   
  
if(handle==INVALID_HANDLE_VALUE)   
  
return 0;   
  
do{   
  
if(fileinfo.cFileName[0]==''.'')   
  
continue;   
  
strcpy(allname,pathname);   
  
strcat(allname,fileinfo.cFileName);   
  
//检取文件属性,可以使用  
  
fileinfo的dwFileAttributes成员  
  
stat=GetFileAttributes(allname);   
  
if(stat==0xffffffff){   
  
MessageBox("警告,获取文件信息时出错!!",   
  
allname, MB_OK|MB_ICONINFORMATION);   
  
continue;   
  
}   
  
//如果查询到的是文件夹  
  
if(stat&FILE_ATTRIBUTE_   
  
DIRECTORY && m_DIRECTORY){   
  
char temp[MAX_PATH];   
  
sprintf(temp,"%s%s\\%s",   
  
pathname,   
  
fileinfo.cFileName,filter);   
  
//递归改变该子目录下的文件  
  
ChangeTheProperty(temp,1);   
  
}   
  
}while(FindNextFile   
  
(handle, &fileinfo));   
  
FindClose(handle);   
  
}   
  
////查找并

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号