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

推荐订阅源

V
Visual Studio Blog
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
The Cloudflare Blog
D
DataBreaches.Net
J
Java Code Geeks
G
Google Developers Blog
L
LangChain Blog
N
Netflix TechBlog - Medium
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
小众软件
小众软件
量子位
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
博客园_首页
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
腾讯CDC

博客园 - 泡泡

程序小注意 - 泡泡 - 博客园 有关进程创建,与子进程的路径指定 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 );//更改文件的属性设置