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