【问题标题】:How to check whether a folder or a file is hidden=如何检查文件夹或文件是否隐藏=
【发布时间】:2023-03-12 13:36:01
【问题描述】:

我想知道文件或目录是否被隐藏。

一开始我使用了 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;
}

【问题讨论】:

    标签: c++ windows api file hide


    【解决方案1】:

    使用GetFileAttributes 函数。

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 2020-05-22
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2010-11-08
      • 1970-01-01
      相关资源
      最近更新 更多