3

调用GetFileAttributes诸如 C:/pagefile.sys 之类的文件会返回INVALID_FILE_ATTRIBUTES,然后GetLastError返回ERROR_SHARING_VIOLATION。然而,绝对应该可以检索有关系统文件的信息——例如,能够判断它是文件还是目录。有解决方法吗?

4

1 回答 1

1

使用FindFirstFile您可以获得pagefile.sys文件的信息。您可以从 获取文件的其他信息ffd

WIN32_FIND_DATA ffd;    
HANDLE hFind = FindFirstFile( "C:\\pagefile.sys", &ffd );

if ( INVALID_HANDLE_VALUE == hFind )
{
    return 0;
}

if ( !( ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) )
{
    _int64 filesize = ffd.nFileSizeHigh;
    filesize <<= 32;
    filesize |= ffd.nFileSizeLow;
    printf( "%s is %I64u bytes", ffd.cFileName, filesize );
}

FindClose( hFind );
于 2015-01-18T14:54:42.333 回答