NTFS中的GetFileAttributes

时间:2011-11-29 08:26:41

标签: ntfs

我想使用Windows API检查文件/目录是否隐藏。   GetFileAttributes可能是最好的选择。但是当我检查FAT“C:\”时,它返回0x10.it看起来效果很好。但是在NTFS“C:\”中它返回0x16,也许它表明“C:\”的S属性是“系统”,“目录”和“隐藏”。所以问题出在这里,为什么它会被隐藏?事实上它并没有被隐藏。

请你给我另一个API检查windows文件系统的文件/目录是否隐藏?    非常感谢。

1 个答案:

答案 0 :(得分:0)

GetFileAttributes有一个很大的缺点,看看它尝试这个简单的代码:

ShowMessage(IntToStr(GetFileAttributes(PChar('C:\.MyNonExistantFile'))));

它显示GetFileAttributes以十进制形式返回32(因为文件不存在,它是一个BUG,正确的返回值必须为-1)。

你也可以试试这个:

CreateDir('C:\.Anything');
ShowMessage(IntToStr(GetFileAttributes(PChar('C:\.Anything\MyNonExistantFile.TXT'))));

它与以句点(。)符号开头的文件和目录相关。

注意:FileExists在这种情况下也返回true(并且文件不存在)。