|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
$ `" M. ~' j0 ~3 `3 K% ppublic:$ w, L, T: k3 Z' H* s
static std::string GetSharePath() {
6 R$ m2 Y* Q% p, t1 `4 R // 优先检查 share 目录( i8 _9 O' q! o/ R( @9 l- d
if (DirectoryExists("./share/")) {
( d) a& u& S7 v3 j% j3 ?6 a. W0 o return "./share/";+ ?! J; B. ^$ d& ]3 e! v+ O
}7 m3 K/ Y4 A) L$ Q
// 如果 share 目录不存在,使用当前目录% G) W+ E" e/ A/ L
return "./";" C0 I# _4 M) H4 c/ C( Q4 V, h9 ?
}
1 K E: z6 J/ u: v- S3 [
. l6 g* C' ^* b0 ^0 `/ E static std::string GetItemetcPath() {
( b; V# v4 _! M- \ return GetSharePath() + "itemetc.csv";
. z- m" l9 B2 K* a% S2 F, b; ? }- T! O9 [7 ~) l' T! }6 j/ R' ]
. b' L: S' t" p5 g- s! f) T
static std::string GetItemarmorPath() {
5 d; v, f8 I) a. H1 Y/ A9 B return GetSharePath() + "itemarmor.csv";
* _& h8 c- K- |% o }
; i3 v! \& \1 l+ L/ p! _, D
" U! x: T2 p7 f2 @7 T7 M) O static std::string GetItemweaponPath() {
! N7 Q, ~, C: G( g return GetSharePath() + "itemweapon.csv";$ A# \4 L v! r. M3 h% J/ Y
}
4 D9 b0 D9 T# O4 M0 }; ]- Q R ( u+ ?; i5 |- G/ ?( M
static std::string GetSkillnamePath() {9 |7 H1 j4 ^! r3 j7 i6 l( F: N
return GetSharePath() + "skillname.csv";
$ F/ o8 H2 P* P* h8 b }5 r+ K& v, A8 l: B1 k* W2 o
) \) d5 u5 T5 i: S3 M
private:
0 y3 i( x( d* M static bool DirectoryExists(const std::string& path) {
7 E! F! b9 a+ W1 h; ?9 E: C // 实现目录存在性检查9 p* e( i/ u8 @
struct stat info;8 B$ t* s- e" _4 y/ K4 E
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
. o( {: w% v' f& j+ F% z' K }
$ N+ Z) T# H2 n" p8 p}; |
|