我想使用Windows API检查文件/目录是否隐藏。 GetFileAttributes可能是最好的选择。但是当我检查FAT“C:\”时,它返回0x10.it看起来效果很好。但是在NTFS“C:\”中它返回0x16,也许它表明“C:\”的S属性是“系统”,“目录”和“隐藏”。所以问题出在这里,为什么它会被隐藏?事实上它并没有被隐藏。
请你给我另一个API检查windows文件系统的文件/目录是否隐藏? 非常感谢。
答案 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(并且文件不存在)。