|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {# f+ l- S0 h& N4 S2 `0 y
public:
# f0 Z8 u' N8 x" C$ s; E static std::string GetSharePath() {. f9 u) z. S4 p# g; {
// 优先检查 share 目录
* {4 t& ?: a4 B' Q if (DirectoryExists("./share/")) {1 }" R4 c# w. K/ R
return "./share/";
+ R9 m) j* l+ N9 f1 c" y& R( F1 n }
0 E) B) O: g! H. M" U // 如果 share 目录不存在,使用当前目录
4 \: E9 y1 t0 t( g; X/ O5 |% N" { return "./";
7 M( S7 \: m/ M5 T+ h- \ }' Q" ]# r; T, {3 C) G
. E. [* u- U1 r/ G5 g
static std::string GetItemetcPath() {
. N3 p7 ?' P L0 B3 @: k+ P7 r2 P return GetSharePath() + "itemetc.csv";! c$ f+ I g& Z, h5 J' I( D
}8 D, G' v" B- G* a
( P, g* |% ?# a! B8 Q4 ]
static std::string GetItemarmorPath() {
# K$ f! j3 M2 F return GetSharePath() + "itemarmor.csv";7 o$ G/ u. f, R$ `: @9 P
}: v1 T5 g4 I1 {- o% Q
% r: R4 k2 d, O6 ?& w static std::string GetItemweaponPath() {
% M; S3 ~* m7 I4 x9 n | return GetSharePath() + "itemweapon.csv";
* N' j0 E0 [ L, I9 c }
0 ~& z F* R% r6 a' g& R$ ?: x , _/ B5 N' }; c+ K$ t E, ~
static std::string GetSkillnamePath() {
; q* A8 ^: v( Q( g0 W7 y) [$ I return GetSharePath() + "skillname.csv";
" F& l2 F8 r/ a1 g. P }
+ t9 j" A$ R3 b 2 L/ M8 S; j6 p" b7 c) w
private:
0 T6 _: G2 w5 P static bool DirectoryExists(const std::string& path) {, ^6 S+ K9 M _9 B& Y4 G
// 实现目录存在性检查
3 o$ _ X" M7 b struct stat info;: b4 U% i, u. w
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
! T7 V2 U: ^; P4 p+ i/ j5 N }
3 q) S r6 y m" M3 Q, }}; |
|