|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
4 ]' V6 H1 N2 d( C6 {* }public:" ?5 L$ r5 N2 H% X& B9 \
static std::string GetSharePath() {& q" O# h7 I1 m4 H
// 优先检查 share 目录
8 v: o" E( c, v; t1 R- c- J' a if (DirectoryExists("./share/")) {$ g6 g& ]' T( a! q* y8 E
return "./share/";
7 {0 e; a8 o7 B1 }0 D9 w+ ` }* v6 J, O A& G8 g# \' `
// 如果 share 目录不存在,使用当前目录" [# [" G" C5 Z$ k
return "./";
; W6 N' m7 F' j% w- M }
" e; Q l; W2 ~* w+ m- g/ @
4 }1 c, |5 I2 @& s& Y1 S static std::string GetItemetcPath() {" ?' |# z0 U# X+ |
return GetSharePath() + "itemetc.csv";2 A$ H3 w7 a- s* f" a/ d# E3 v
}/ ^- h* F" H1 G- D0 O# z2 C" {
5 |' K0 ?6 C; c+ p: D static std::string GetItemarmorPath() {
w p- G. ~; A1 H# E$ b return GetSharePath() + "itemarmor.csv";! E; b- r; U8 o
}
3 [' _3 K4 ^) ^5 I 2 N5 c( p$ s4 R3 q* _: u
static std::string GetItemweaponPath() {! F; H- l/ m) o E5 c( U+ |- D
return GetSharePath() + "itemweapon.csv";3 K _6 Q$ B7 u. ]6 A& I, O& Q
}
6 F% g: y: H& v
: V" K. C! F( Q* X: V static std::string GetSkillnamePath() {
8 a* t, e9 }6 h5 F; r# u return GetSharePath() + "skillname.csv";
e y& q# {5 h' Q1 K, j }
; n! r/ Q" b6 b/ r' _
2 @/ E# X0 D5 w* s3 w; w6 v% aprivate:
3 d: N! I* @$ T6 g* w static bool DirectoryExists(const std::string& path) {$ h' E* d2 D8 ^3 F% H8 g: O
// 实现目录存在性检查
2 w3 F. |: e9 D( s, j6 |* l* p struct stat info;' Q2 w1 \" f( q4 t+ C, V
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
, F' P/ }: Y& r8 d1 q: h7 T }: c; A! H. {5 A$ W8 b
}; |
|