2013-05-27 118 views
3

对于诸如C:/pagefile.sys的文件调用GetFileAttributes返回INVALID_FILE_ATTRIBUTESGetLastError返回ERROR_SHARING_VIOLATION。但是肯定有可能检索关于系统文件的信息 - 例如能够判断它是一个文件还是一个目录。有没有解决方法?GetFileAttributes(已锁定)系统文件

+7

您应该可以使用FindFirstFile代替。 –

回答

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