|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
( K( m+ e0 ?1 e; n6 P! q# xpublic:6 M. D7 x9 G8 t2 B
static std::string GetSharePath() {! H5 o8 f4 ]; T, k
// 优先检查 share 目录
% Q6 _* B+ N1 t& a# G+ b if (DirectoryExists("./share/")) {
/ q2 {" l: f" i0 r3 X* z return "./share/";
. X a& K1 ~# p3 X1 Z2 f' i }3 {2 c" L' i N3 V2 A5 X7 K/ A3 s
// 如果 share 目录不存在,使用当前目录0 v, J: V7 q( h& S& F5 S
return "./";/ v" Z/ Z- _" b" c
}/ j: E O: R7 y) w$ p- f5 x" \
' [$ U4 [, _. x) _- V4 N static std::string GetItemetcPath() {2 x. M3 U0 e! H
return GetSharePath() + "itemetc.csv";" t* F7 V% `6 N# t1 a' N5 T; ]
}
1 G4 m, _7 E* r2 h; l # T! H0 P9 o9 y8 p3 |2 W4 G5 C" [
static std::string GetItemarmorPath() {) |4 u S/ T. P( K: R
return GetSharePath() + "itemarmor.csv";
/ F/ P0 U, C0 K% l- R' d3 ?3 O! Y }
8 `7 u" ]. S7 z' K' j 0 D) @7 \2 }* T- I0 U m |; l
static std::string GetItemweaponPath() {
8 Y% _9 N# S* W$ o6 J return GetSharePath() + "itemweapon.csv";) @! o5 e5 o6 s
}# J; B- f) B% a/ o- W' M
4 d: f% n7 p* K) D3 O* N static std::string GetSkillnamePath() {& C' q5 _9 M2 o) W
return GetSharePath() + "skillname.csv";
' Z& ]# A' K+ v. m* o9 V' U. w }4 E. q+ H+ W( F" o! l9 u
6 J* l5 u1 u: m5 ~# tprivate:
1 S: T. y+ U& Q& X4 y9 c! A2 j% J static bool DirectoryExists(const std::string& path) {
: T* k9 T5 G* H% v; a2 T // 实现目录存在性检查4 A5 V! z$ A' s2 [1 K, v6 k( a
struct stat info;
: Q! e. w: H2 q$ q return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
; B5 w& L- Y+ a, V2 D6 P }
9 w' i3 x& M4 P}; |
|