2025-09-14 14:51:38 +08:00

59 lines
1.6 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "PathManager.h"
#include <QtCore/QCoreApplication>
#include <QtCore/QFileInfo>
#include <QtCore/QDir>
#include <QtCore/QStandardPaths>
#include <QtCore/QFile>
#include <iostream>
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);
}