为文件C:/pagefile.sys调用GetFileAttributes返回INVALID_FILE_ATTRIBUTES,而GetLastError返回ERROR_SHARING_VIOLATION。但是绝对有可能检索有关系统文件的信息-例如能够判断它是文件还是目录。有解决方法吗?

最佳答案

使用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 );

关于winapi - (锁定的)系统文件上的GetFileAttributes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16772931/

10-13 01:52