|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {" ~5 g1 T n* Q' j% b9 `* b. a( S& ?
public:" I( r/ d2 o0 [; a4 ~
static std::string GetSharePath() {6 ^4 Z- M$ b% \& U7 e
// 优先检查 share 目录# y* m7 L7 v4 D+ K
if (DirectoryExists("./share/")) {1 W: I4 R8 j& b, Q& J
return "./share/";3 j9 F+ Y( k! e, ?& R& J' U* l$ V
}
( h) a; H5 | s/ l // 如果 share 目录不存在,使用当前目录# ]1 s4 y& m' D0 A4 G8 K* i; Y
return "./";4 {, ~2 W* l' ]
}1 j3 O5 V, a5 t$ m6 D! O/ U# L
0 e; P. s5 |( Q+ h
static std::string GetItemetcPath() {
7 k% r6 I$ S+ F5 y* M- ^ return GetSharePath() + "itemetc.csv";6 {3 G; Q- P( s: _& Q
}
3 Y/ ^* R! g/ j- {) ~9 h . X) @/ |4 }4 s" @2 U
static std::string GetItemarmorPath() {) p8 b1 Y- b3 O8 t- [) l4 M U9 ?
return GetSharePath() + "itemarmor.csv";
1 ~+ b! L; B* H2 D5 r' K* J8 U }: L+ A V7 l* o8 Q$ ]
5 g# }/ @; T- |6 ?9 }# m static std::string GetItemweaponPath() {8 r0 M. \; d1 Q) b- g0 a0 v
return GetSharePath() + "itemweapon.csv";
8 F3 B& Y- g* Z/ V) v }
( T/ p$ f; p8 n + x. w: w+ z4 ?
static std::string GetSkillnamePath() {
! S$ C# |! l1 k, s! e A0 u/ N: m return GetSharePath() + "skillname.csv";$ k; w" m9 {5 l
}! B I( p8 s: I( B0 @4 A$ a
4 i3 _) C) t' t3 e4 p
private:6 M; z6 M! S. T$ D4 n u3 M2 n
static bool DirectoryExists(const std::string& path) {
7 x- |9 r" t, Q2 V5 ~- M( f // 实现目录存在性检查
; l3 U+ T1 Z c8 F6 | struct stat info;4 a( s0 P8 i' |; h# B+ x
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
# L, x1 K6 z7 r3 A, S2 q }; q* ?0 v/ v. Y5 Q' p0 x
}; |
|