惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
U
Unit 42
F
Fortinet All Blogs
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
Y
Y Combinator Blog
罗磊的独立博客
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
I
InfoQ
博客园 - 叶小钗
博客园 - 聂微东
Last Week in AI
Last Week in AI

博客园 - 泡泡

程序小注意 - 泡泡 - 博客园 有关进程创建,与子进程的路径指定 dll 有关CComboBox - 泡泡 - 博客园 有关线程 ADO 存储过程 - 泡泡 - 博客园 VC执行存储过程 - 泡泡 - 博客园 读写文件操作 - 泡泡 - 博客园 Access数据库SQL操作 ComboBox控件-转 CTime 常用字符转换 字符串分解 音频 Inno SetUp 控件LIST 有关音频编码 窗口透明、半透明 Windows Media
设置文件属性 VC - 泡泡 - 博客园
泡泡 · 2007-01-10 · via 博客园 - 泡泡

{ …… 

static char BASED_CODE szFilter[] = "*.ppt";
     CFileDialog FileDlg(TRUE,"PPT",NULL,OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON
                 |OFN_PATHMUSTEXIST,szFilter);
     FileDlg.DoModal();
 
     // To get the selected file's path and name
     CString strFileName;
     strFileName = FileDlg.GetPathName();

  //-------------------将只读文件的只读属性去掉-----------------------
  CFileStatus rStatus;
  CFile::GetStatus(strFileName,rStatus);//获得文件的属性设置
        rStatus.m_attribute=rStatus.m_attribute & 0x3E;   //如果文件为只读的,将只读属性去掉
        //--------------------------------------------
  CFile::SetStatus(strFileName, rStatus );//更改文件的属性设置
   ……

}

enum Attribute {
   normal =    0x00,//对应的二进制编码是00 0000
   readOnly =  0x01,//对应的二进制编码是00 0001
   hidden =    0x02,//对应的二进制编码是00 0010
   system =    0x04,//对应的二进制编码是00 0100
   volume =    0x08,//对应的二进制编码是00 1000
   directory = 0x10,//对应的二进制编码是01 0000
   archive =   0x20 //对应的二进制编码是10 0000
   };

所以取消某个属性的设置,就将相应的二进制编码的“1”位设置为0,然后其他位均为“1”,再转换为十六进制编码,然后进行“&”操作即可。如:rStatus.m_attribute & 0x3E(其中0x3E对应的二进制编码是11 1110)。

设置文件属性,

CFile::GetStatus(strFileName,rStatus);//获得文件的属性设置
        rStatus.m_attribute=rStatus.m_attribute |
0x01;   //文件为只读属性        //--------------------------------------------
  CFile::SetStatus(strFileName, rStatus );//更改文件的属性设置