|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
2 D! p& O. `8 {' b4 Jpublic:) s2 U" u# ~8 W# o) R8 b
static std::string GetSharePath() {0 C2 T/ L% u+ u4 @9 i
// 优先检查 share 目录
1 T* [ j' N1 D0 I0 c, } if (DirectoryExists("./share/")) {; X# o. q1 w1 y2 i# Y
return "./share/";
8 `# n( d; G- o! m2 y3 k" | ` }2 Q# P; [! H F" E( S2 Y) W
// 如果 share 目录不存在,使用当前目录+ @3 c) ]. U, l0 k0 H
return "./";4 M+ d1 Z$ W! ?# q# ~, f7 i9 n' d
}8 f+ Y" e6 ~% _) k
1 ~' t% ]" p2 i' g/ j static std::string GetItemetcPath() {+ K9 F4 t: p4 s
return GetSharePath() + "itemetc.csv";0 }, |' ^1 D7 n* ?1 T7 e% K* z6 i
}4 [; Z! U ]( b4 u/ I$ ~8 s
: U8 R7 X s$ \ static std::string GetItemarmorPath() {, B4 C; N* a3 _9 p3 T+ S
return GetSharePath() + "itemarmor.csv";7 ]+ S( }' P7 L9 D' `
}7 S9 G: `' @# j, m |
( k" n8 E8 D5 r ?
static std::string GetItemweaponPath() {% S2 U1 w$ [2 m! q
return GetSharePath() + "itemweapon.csv";$ Q; e m8 N0 x2 v" T! w) j0 C _* `
}
' ~) @0 r9 ]2 u" ]& o7 e ; d9 A6 e* B# Q
static std::string GetSkillnamePath() {
$ X4 B* h- \: F% i8 [9 C return GetSharePath() + "skillname.csv";
^0 |' e! ?6 q) q! c }
1 W2 y+ ]# z- e4 b" }
4 S( p! A! J9 l/ [7 F- z9 p5 F: J! |private:) W3 J7 r- R% {0 I- c
static bool DirectoryExists(const std::string& path) {
Y1 K6 `& K9 B // 实现目录存在性检查
$ ]2 A' U) Z0 I. B8 C* X( Y3 }' b9 K struct stat info;
6 C$ p- t5 T8 j. q5 }* z2 v7 f return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);; Y$ p, O6 s: |0 }
}
# I/ q# S& \; t5 ~}; |
|