#ifndef _SOLAR_CELL_HELPER_H__ #define _SOLAR_CELL_HELPER_H__ #include #include #include #include #include #include namespace solarCell { class SolarCellHelper { public: static inline qint64 GetDiskFreeSpace(QString strDriver) { LPCWSTR lpcwstrDriver = (LPCWSTR)strDriver.utf16(); ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes; if (!GetDiskFreeSpaceEx(lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes)) { qWarning() << "ERROR: Call to GetDiskFreeSpaceEx() failed."; return 0; } //返回MB return (quint64)liTotalFreeBytes.QuadPart / 1024 / 1024; } static inline void GetFileInfoList(QFileInfoList& fileInfoList, QString strFolder) { QDir qDir(strFolder); QFileInfoList filesListTmp = qDir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::Time); fileInfoList += filesListTmp; QStringList dirList = qDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); for (int i = 0; i < dirList.size(); i++) { GetFileInfoList(fileInfoList, strFolder + "/" + dirList.at(i)); } } static inline void GetDirInfoList_child(QFileInfoList& dirInfoList, QString strFolder) { QDir qDir(strFolder); QFileInfoList filesListTmp = qDir.entryInfoList(QDir::Dirs, QDir::Time); dirInfoList += filesListTmp; QStringList dirList = qDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); for (int i = 0; i < dirList.size(); i++) { GetDirInfoList_child(dirInfoList, strFolder + "/" + dirList.at(i)); } } static inline void GetDirInfoList_root(QFileInfoList& dirInfoList, QString strFolder) { QDir qDir(strFolder); QFileInfoList filesListTmp = qDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time); dirInfoList += filesListTmp; } static inline bool DelDiretory(const QString &dirPath) { if (dirPath.isEmpty()) return false; QDir qDir(dirPath); if (!qDir.exists()) return true; qDir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); QFileInfoList qFileList = qDir.entryInfoList(); foreach(QFileInfo qFileInfo, qFileList) { if (qFileInfo.isFile()) qFileInfo.dir().remove(qFileInfo.fileName()); else DelDiretory(qFileInfo.absoluteFilePath()); } return qDir.rmpath(qDir.absolutePath()); } };//Class SolarCellHelper } #endif//_SOLAR_CELL_HELPER_H__