|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
% W4 f4 H5 q7 Upublic:& k1 M+ O/ j$ s4 u9 `. f @
static std::string GetSharePath() {
0 R1 y4 i! R# T3 l- s2 A // 优先检查 share 目录
! f* K2 W" F8 _0 q- o9 o# U, B if (DirectoryExists("./share/")) {. f W! X# F' T/ p; W
return "./share/";
! N/ b Y% W2 U }/ v0 Y, \: [0 R; g: T' ?
// 如果 share 目录不存在,使用当前目录
0 a. b/ @/ l! I0 A3 S2 V+ t return "./";
. w5 ]) ?* Q& j# p- k& A }2 ^5 i; t8 z4 J! g G, w/ J
% h: a: n" Z8 h% [
static std::string GetItemetcPath() {" y# k+ ~; D n9 a0 `( f" }% q
return GetSharePath() + "itemetc.csv";! _( ?; _( ]0 a" c- Y5 ]2 C* [
}. v; ~4 ~4 l' P" e2 I2 U
6 c. a- `. p0 H+ W I1 L static std::string GetItemarmorPath() {5 c& r' z' V$ ~0 f
return GetSharePath() + "itemarmor.csv";; g7 F1 @6 |* b- G% K% s6 x
}
- I3 Z7 y: ^2 i# U. k) w" t # U) a+ O* D/ m/ o0 j" K8 |/ |: U# N+ X
static std::string GetItemweaponPath() {5 B% _: P- k# C
return GetSharePath() + "itemweapon.csv";& P S& i5 I/ q, F
}/ s+ G7 j5 b C# ^8 A7 x
. h5 M. M0 q2 {4 l. \ static std::string GetSkillnamePath() {' V) _! W n% H6 N/ ?
return GetSharePath() + "skillname.csv";
) f2 U6 m2 ~2 Y( Z) `; l }" l8 T1 Q6 {6 W* H
; V( T& w4 s! |, B4 G) e( T d! o
private:
6 N6 d5 T! Q+ @ ^0 m static bool DirectoryExists(const std::string& path) {* ]: p) j9 W+ R3 y
// 实现目录存在性检查
2 N% k L6 T) m3 v struct stat info;
( j- E1 e( S8 ]% H5 ~. R return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
3 `8 U( \6 k9 }( o9 O3 F }
/ }+ g* h3 G" V7 W6 P4 I" j}; |
|