|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
2 i- k( w( U+ J) K6 epublic:: ]0 e" G: ?0 c/ m, ^
static std::string GetSharePath() {
. \/ b4 z: P/ S: z // 优先检查 share 目录
! h8 \' l# n: g) c if (DirectoryExists("./share/")) {. @- o5 `' K$ E* P0 T* |& r, P7 M+ {! \6 Z
return "./share/";
0 N( \5 K$ D9 W/ _ s2 A z }8 {" c! [- K7 d/ k6 E
// 如果 share 目录不存在,使用当前目录% ?: d! \1 m* `2 r; N0 K: B
return "./";
* t ~# d+ n; m" @' S }
9 T% B" Y# L* i 0 k+ Q! S. V, X
static std::string GetItemetcPath() {! z- y( [: _0 q
return GetSharePath() + "itemetc.csv"; C+ v+ t" s4 S! s0 ^( r, }, `( O
}
/ R! I3 m$ u( Q K' s( ? p- Z
5 T. A' B. y. g% V static std::string GetItemarmorPath() {
# S0 g7 ]* [# J2 G return GetSharePath() + "itemarmor.csv";. }* s6 t8 K+ t. A3 `* Y0 A* x
}- k2 x: H/ r! V* t
) e! v# W7 Q' ~; c4 o, K- s
static std::string GetItemweaponPath() {1 n3 Y0 c! {, b4 u }0 n
return GetSharePath() + "itemweapon.csv";
O0 n& \: T3 ^* G- H. I }
1 @7 G* j% n4 y- M # x' Y; i3 v& r2 s
static std::string GetSkillnamePath() {
4 l0 }9 k) L, \8 J6 U return GetSharePath() + "skillname.csv";
6 ~0 a) |; _& y8 a, b }* @! A3 r" `: X) i% Q
8 v' [* Q( r1 c( x
private:
1 x) k9 m* ~7 W- S static bool DirectoryExists(const std::string& path) {
4 m$ F4 O' M6 m( d0 S2 ~ H8 L% \# h // 实现目录存在性检查
2 t% v. P4 h' ? struct stat info;9 Z, \4 q8 i& _% a7 z* x6 q* `
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);; j" j, h, Y. [6 v! O( i# D
}$ J7 K0 i x; s- r
}; |
|