【问题标题】:File Attribute is read only when its folder is read only and the file is not当其文件夹为只读且文件不是只读时,文件属性为只读
【发布时间】:2009-06-07 09:40:44
【问题描述】:

有人知道吗?? GetFileAttributes 返回 32 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_ARCHIVE)。 文件是 C:\WINDOWS\system32\drivers\etc\hosts。

非常感谢!

【问题讨论】:

  • 你的问题没有意义,因为 32 != FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_ARCHIVE(应为 33)

标签: c++ winapi file


【解决方案1】:

http://msdn.microsoft.com/en-us/library/aa364944(VS.85).aspx

看看这个。响应 32 只是 FILE_ATTRIBUTE_ARCHIVE。所以你的代码工作正常。

【讨论】:

    【解决方案2】:

    以下哪项是你的情况?

    1) GetFileAttributes 返回 33 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_ARCHIVE)

    2) GetFileAttributes 返回 32 (FILE_ATTRIBUTE_ARCHIVE)

    如果主机文件没有只读属性,并且 GetFileAttributes 不返回 INVALID_FILE_ATTRIBUTES,那么您可以相信它的返回值。所以如果文件实际上没有只读属性,那么你就有上面的情况#2。

    【讨论】:

      【解决方案3】:

      它返回 33 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_ARCHIVE)。 hosts文件不是只读的,而是返回值。

      【讨论】: