|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
" F0 N7 o! G/ fpublic:9 T+ _1 X8 ^; o% |: r4 ~' [2 N% j
static std::string GetSharePath() {
5 x# C5 P3 f5 k Y4 { // 优先检查 share 目录+ ~- g5 U1 x y: `5 \, }
if (DirectoryExists("./share/")) {
) F5 S( ~7 M+ s8 h) U return "./share/";
0 f7 ?; \" V4 O: j! e7 i1 @: P }
: ?4 ^% z" J$ ]4 s0 _5 O {3 W // 如果 share 目录不存在,使用当前目录* ]; J. A9 H' g- u1 f
return "./";; C6 g! H6 T* \, b$ u& g* {. H% B
}0 U. K: }- n! l) P- c9 [. L
: E, p. _, i7 W& ^# ^1 s
static std::string GetItemetcPath() {
2 z4 O9 ]! e# k# c% s return GetSharePath() + "itemetc.csv";
4 i' L9 P& a, k( S @* v }
+ H0 r# P2 j! W! m 3 H6 ?$ i6 f1 W# q5 u
static std::string GetItemarmorPath() {
' T2 Z& y" n9 m% @ return GetSharePath() + "itemarmor.csv";- \/ Y: N* g- u$ |( ^3 }8 L
}
0 Y6 \) u. k3 `- o" \0 E
! y& \4 S! i* Z$ d% D% [ static std::string GetItemweaponPath() {' x0 n' X& i1 _" ?6 F
return GetSharePath() + "itemweapon.csv";# I! U* n" t# r2 O% T1 b
}
" N1 a* c* X- R& T0 M! f. [' h, E 1 T- d6 x) ^- s* l! T" x) x6 ?
static std::string GetSkillnamePath() {
# Y: t0 j& u% S5 t return GetSharePath() + "skillname.csv";- q! A) |' t) }7 q! ?/ Q! T2 X7 R& ?
}) O% V4 {; ?- U: F! L# N
: l$ E: o& t9 {& Bprivate:
- B. } X5 c, q- Y; ?0 q static bool DirectoryExists(const std::string& path) {
+ [4 v. v8 S; m2 N // 实现目录存在性检查/ h! T+ ?6 v7 i3 C# t
struct stat info;
3 s/ ?* O% _* K+ i! l( n return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);$ S: v2 F$ m j; J }
}
1 ^# P- S! a' U# h+ d$ P}; |
|