嗨朋友们我正在开发一个应用程序,我应该检查 SD 卡的文件系统,还需要检查插入的 SD 卡是否写保护。我成功获取了文件系统详细信息,如下所示:
TCHAR volumeName[MAX_PATH + 1] = { 0 };
TCHAR fileSystemName[MAX_PATH + 1] = { 0 };
DWORD serialNumber = 0;
DWORD maxComponentLen = 0;
DWORD fileSystemFlags = 0;
LPCWSTR path = deviceData->m_strPath.utf16(); // deviceData gives me the path of the SD Card
// Get the file system details
if (GetVolumeInformation(
path,
volumeName,
ARRAYSIZE(volumeName),
&serialNumber,
&maxComponentLen,
&fileSystemFlags,
fileSystemName,
ARRAYSIZE(fileSystemName)))
{
newData.strFileSystem = QString::fromUtf16(fileSystemName);
}
m_SDInfoList.append(newData); // m_SDInfoList is QList
通过这种方法,我可以知道文件系统是 FAT32 还是 NTFS。现在我想实现写保护的细节。他们的 Qt API 是否可以给插入的 SD 卡是否写保护?请帮忙 :)
更新:
这就是我使用 QFileInfo 所做的:
QFileInfo fileInfo(deviceData->m_strPath);
if(!fileInfo.isWritable())
{
newData.strStatus = "WriteProtect Enabled";
}
else
{
newData.strStatus = "WriteProtect Disabled";
}
即使我设置了写保护权限,它总是最终给我 WriteProtect Disable 。