如何在Qt中获取驱动器的格式详细信息

时间:2013-03-29 11:41:19

标签: c++ macos qt qt4 file-format

我正在开发一个应用程序,我需要显示驱动器的文件格式(NTFS或FAT32)。现在我做了一些研究,发现没有Qt API可以让我轻松获取格式细节。所以我遇到了一个Windows API,当我连接驱动器(外部或内部)并在Windows上运行应用程序时,我可以获得格式细节。 这是代码:

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->m_strpath gives me the drive path

if (GetVolumeInformation(
    path,
    volumeName,
    ARRAYSIZE(volumeName),
    &serialNumber,
    &maxComponentLen,
    &fileSystemFlags,
    fileSystemName,
    ARRAYSIZE(fileSystemName)))
{
         newData.strFileSystem = QString::fromUtf16(fileSystemName);
}   

    QList m_SDInfoList;
    m_SDInfoList.append(newData);

当我在MAC操作系统中运行我的Qt应用程序时,有没有办法获得相同的格式细节?一个MAC API,可以帮助我获取文件格式。请帮助:)

1 个答案:

答案 0 :(得分:0)

您需要使用底层系统调用。 OS X特别基于Unix(BSD)。因此,您可以使用底层的Unix系统调用来获取信息。 由于OS X完全符合POSIX,因此使用POSIX系统调用。查看here以获取概述,并查看文件系统调用的here 由于Cocoa和Objective-C主要用于纯OS X应用程序,因此它们对您没什么用处。