0
我想知道文件或目錄是否隱藏。如何檢查文件夾或文件是否隱藏=
起初我使用了CFile :: GetStatus(),但是我發現這個API有時會返回FALSE。
我不知道爲什麼,所以我寫了下面的代碼,但是我發現它並不穩定。我的代碼有什麼問題?
BOOL IsHide(const CString& strPath, BOOL& bIsHide)
{
if (strPath.GetLength() <= 3)
{
bIsHide = FALSE;
return TRUE;
}
bIsHide = FALSE;
HANDLE hFile = CreateFile(strPath, 0, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
ASSERT(FALSE);
return FALSE;
}
BY_HANDLE_FILE_INFORMATION fiBuf;
GetFileInformationByHandle(hFile, &fiBuf);
CloseHandle(hFile);
WORD isHide = (fiBuf.dwFileAttributes) | FILE_ATTRIBUTE_HIDDEN;
if (isHide == fiBuf.dwFileAttributes)
{
bIsHide = TRUE;
}
else
{
bIsHide = FALSE;
}
return TRUE;
}