|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {9 P0 K' J5 p6 s7 D& a$ _
public:3 |7 Z6 K& u" G# j3 b! C6 \
static std::string GetSharePath() {
2 W4 O% T5 z2 T, j* i) \2 T; e // 优先检查 share 目录- g* b: W& L: Y( {4 t) e5 |/ d
if (DirectoryExists("./share/")) {) T9 Q+ }) U# A# Y! j, Z
return "./share/";
6 a4 [' k# {# V4 z6 {8 y }) ?( ~- Y7 A9 m0 G: Y0 B' k) L/ ^
// 如果 share 目录不存在,使用当前目录
6 l' u a% w% J8 j% M return "./";7 ]0 M! x: @' _
}. `7 `' c0 }' r0 H. R9 X4 p
6 ~% Y$ D$ L: J
static std::string GetItemetcPath() {" H0 |* t1 |. ?/ ?4 r
return GetSharePath() + "itemetc.csv";
' h$ _+ o. |2 n+ W& x; K }
" S* U5 F$ X' L: {- s3 C. { , q9 J( q$ ^' ?8 k2 _
static std::string GetItemarmorPath() {5 [) x% `6 B! }' w
return GetSharePath() + "itemarmor.csv";) b$ R+ H ?) Q! v) W
}0 G, N) r1 ]/ V0 d# F, G
* \) V `( b t
static std::string GetItemweaponPath() {
: f9 J5 }+ F4 L0 B7 d4 e% x return GetSharePath() + "itemweapon.csv";
' F' x2 w- ` Y" j% ^ }
: |; G. [" Q2 S/ }! L+ {
+ L( }) b' t, K( T# z static std::string GetSkillnamePath() {8 Q" k) P2 D8 z
return GetSharePath() + "skillname.csv";$ R$ B! g, \! }# ~9 D
}7 ], ^" c# u' ^3 b
6 e; y% `) D3 M y/ A8 A# {
private:
0 A6 }+ U. U5 ~) l static bool DirectoryExists(const std::string& path) {. c6 O \+ F( j7 x, ?
// 实现目录存在性检查
# t4 m6 u3 j% j: K) ~8 o struct stat info;
, F7 W6 s9 A! l3 S4 p v return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);0 l1 L5 A+ i3 m2 m- _
}
- W8 I& J) D4 i9 u t}; |
|