#ifndef FILESYSTEM_H #define FILESYSTEM_H #include #include #include #include #include #include #include namespace FileSystem { static bool fileExists(QString path) { QFileInfo check_file(path); return check_file.exists() && check_file.isFile(); } static bool folderExists(QString path) { return QDir(path).exists(); } static QString fileHash(const QString &fileName, QCryptographicHash::Algorithm hashAlgorithm = QCryptographicHash::Md5) { QFile file(fileName); if (file.open(QIODevice::ReadOnly)) { QCryptographicHash hash(hashAlgorithm); hash.addData(&file); QByteArray hashData = hash.result(); return hashData.toHex(); } return QByteArray(); } static void clearFolder(QDir &dir) { //Получаем список файлов QStringList lstFiles = dir.entryList(QDir::Files); //Удаляем файлы foreach (QString entry, lstFiles){ QString entryAbsPath = dir.absolutePath() + "/" + entry; //QFile::setPermissions(entryAbsPath, QFile::ReadOwner | QFile::WriteOwner); qDebug() << dir.absolutePath(); QFile::remove(entryAbsPath); } } static QStringList recognizeRegistryLotroPath() { QStringList paths; #ifdef _WIN32 // Windows 8, 10 QSettings n("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\12bbe590-c890-11d9-9669-0800200c9a66_is1", QSettings::NativeFormat); foreach (QString key, n.allKeys()) { qDebug() << key; if(key.contains("InstallLocation") || key.contains("installlocation")){ QString folder = n.value(key).toString() .replace("\\", "/") .replace("/TurbineLauncher.exe", "") .replace("/LotroLauncher.exe", "") .replace("\"", ""); if(fileExists(folder + "/LotroLauncher.exe")) paths.append(folder); } } // Windows 7 QSettings m("HKEY_CLASSES_ROOT\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\MuiCache", QSettings::NativeFormat); foreach (QString key, m.allKeys()) { if((key.contains("TurbineLauncher.exe") || key.contains("LotroLauncher.exe")) && fileExists(key)){ QString folder = n.value(key).toString() .replace("\\", "/") .replace("/TurbineLauncher.exe", "") .replace("/LotroLauncher.exe", "") .replace("\"", ""); if(fileExists(folder + "/LotroLauncher.exe")) paths.append(folder); } } #else // Реализация под Linux #endif return paths; } } #endif // FILESYSTEM_H