#include "PathManager.h" #include #include #include #include #include #include "VrLog.h" QString PathManager::GetConfigFilePath() { // 确保目标目录存在 EnsureConfigDirectoryExists(); return GetAppConfigDirectory() + "/config.xml"; } QString PathManager::GetCalibrationFilePath() { // 确保目标目录存在 EnsureConfigDirectoryExists(); return GetAppConfigDirectory() + "/EyeHandCalibMatrixInfo.ini"; } QString PathManager::GetAppConfigDirectory() { QString configDir = ""; #ifdef _WIN32 // Windows系统:使用程序目录 configDir = GetProgramDirectory(); #else // Linux系统:使用用户配置目录 configDir = GetUserConfigDirectory(); #endif return configDir + "/../GrabBagApp/Config"; } bool PathManager::EnsureConfigDirectoryExists() { QString configDir = GetAppConfigDirectory(); if (QDir().exists(configDir)) { return true; } LOG_INFO("Creating configuration directory: %s\n", configDir.toStdString().c_str()); bool success = QDir().mkpath(configDir); if (success) { LOG_INFO("Configuration directory created successfully\n"); } else { LOG_ERROR("Failed to create configuration directory: %s\n", configDir.toStdString().c_str()); } return success; } QString PathManager::GetProgramDirectory() { QString exePath = QCoreApplication::applicationFilePath(); return QFileInfo(exePath).absoluteDir().path(); } QString PathManager::GetUserConfigDirectory() { return QStandardPaths::writableLocation(QStandardPaths::ConfigLocation); }