こんにちは、私は 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 かがわかります。ここで、書き込み禁止の詳細を実現したいと考えています。挿入されたSDカードが書き込み保護されているかどうかを確認できるQt APIですか?助けてください :)
アップデート:
これは、QFileInfo を使用して行ったことです。
QFileInfo fileInfo(deviceData->m_strPath);
if(!fileInfo.isWritable())
{
newData.strStatus = "WriteProtect Enabled";
}
else
{
newData.strStatus = "WriteProtect Disabled";
}
書き込み保護されたアクセス許可を設定していても、常に WriteProtect Disable が表示されます。