|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
. g3 q1 U* K6 l6 f: ppublic:
+ T2 ^1 T! q& ^! F; r0 ? static std::string GetSharePath() {
* c, [9 c/ q0 c2 c: ^ // 优先检查 share 目录: P. s$ q! D5 _% |2 L- @& x
if (DirectoryExists("./share/")) {# q, |9 o+ v0 Q1 n, ^4 }
return "./share/";
5 t: z; D+ r( H) _; A }
! B) `5 C) C3 Z! ~; r0 U4 y" Z( h // 如果 share 目录不存在,使用当前目录
2 {0 X5 H+ H% h, Y1 }( H1 R8 n return "./";% ]% k6 V8 O; C+ c
}
0 Y D& ^3 N, }& q
, r& T) L' v% J$ a9 R: U static std::string GetItemetcPath() {& W+ } _2 G! Q. |6 H( h5 n
return GetSharePath() + "itemetc.csv";3 `' |' v7 R: s4 L6 g- h3 c
}" i! f- c' M+ T8 d/ y* ]. I
; i9 u3 R/ D% P0 y
static std::string GetItemarmorPath() {; q7 |8 J" ~* x& j$ Z) k& k ?
return GetSharePath() + "itemarmor.csv";$ ]+ g9 ]/ C' K2 [
}
5 I8 t( H3 E& H / a! h- `5 Q. g1 S
static std::string GetItemweaponPath() {
: q* X. Z+ I8 j: _5 k) y. h return GetSharePath() + "itemweapon.csv";
: ?* s2 P7 \( D4 W, J! Q }1 x n+ z" O9 U. V2 I* F2 J
; }. K' k1 i2 C4 ^; a static std::string GetSkillnamePath() {8 H" Q, ?( U1 C
return GetSharePath() + "skillname.csv";
K# K: Q, B5 `- E& p1 M, g }
) u7 d4 M& D# E/ n0 F
, H! t, I) M8 b' n; h5 X5 ^9 @2 aprivate:& `% M9 ]) q/ \# H0 I! s
static bool DirectoryExists(const std::string& path) {: |8 O4 a$ k7 n% ?8 O1 S8 v9 S
// 实现目录存在性检查
( W \2 }/ h' a. l struct stat info;5 S b! ~" ^5 K2 g# O9 b( y
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
9 a, Y% e, k3 H1 L }0 w3 x9 g5 ?2 J" V3 C: j5 R- M& _
}; |
|