|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
( E5 _) j! C$ ^ ^$ Dpublic:% m/ {+ J6 u6 V
static std::string GetSharePath() {8 y$ `" s, A# G( _& R
// 优先检查 share 目录: n+ o: ~; P4 {8 h( m
if (DirectoryExists("./share/")) {5 t9 T* D3 A, B9 I
return "./share/";
5 v( F& b. F5 B7 [6 F3 o* ^ }9 b3 }( m( H; e
// 如果 share 目录不存在,使用当前目录6 S* k3 H7 V4 V# L1 M" y
return "./";0 k& @7 e0 Z1 q( _6 n
}
+ Z" G+ D' k6 s. \5 j0 k0 p
- \! c$ M3 N, e8 W6 ` static std::string GetItemetcPath() {
& U: q8 U1 H+ \/ n; F- q7 y( m return GetSharePath() + "itemetc.csv";
" p# b. L# e0 k& g9 @0 I }3 e; y. X% w+ {
4 |5 [: ^" R- j1 M" q2 s
static std::string GetItemarmorPath() {
: r, h( ?; t" x# i/ g6 J return GetSharePath() + "itemarmor.csv";$ j6 R( U* c: U
}) \& r% _' v b% S/ C0 O
3 K, O0 l( A# @/ ^9 {
static std::string GetItemweaponPath() {
6 n" J, W5 R! ]% F* e9 N2 ~; F return GetSharePath() + "itemweapon.csv";8 I, P n1 S4 N, c4 x
}* F! q6 [ [* h
2 G9 Z! n8 G" d( h3 q! Y static std::string GetSkillnamePath() {3 v! g p) Z" _9 ]) F# E4 L% a: e
return GetSharePath() + "skillname.csv";
8 }' T! C6 X4 r8 j: t6 y- P }. { s2 g, s4 M0 ^/ M/ M6 S
# E; L4 J7 }( [4 _# Y* o6 ~' `. `private:9 o- Z! y: G9 ]
static bool DirectoryExists(const std::string& path) {9 V( B% k. ?0 r6 Z# r8 p% O
// 实现目录存在性检查
% T3 M# l1 r5 S, y1 f struct stat info;
7 C$ ~" o! ]: c- p+ B return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
2 o% D6 {9 T( \( K0 f$ z& g8 x }
' ]1 A7 g6 W; b9 i}; |
|