|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {
6 O/ G& E' I( Z& ^2 {+ Gpublic:
( u2 |4 w0 L, u8 i% D/ l& Z: [ Y/ P static std::string GetSharePath() {
6 ~ m! M% E3 a6 |$ q // 优先检查 share 目录! ~* `& y3 ]( [ ^6 m
if (DirectoryExists("./share/")) {
4 d F) e6 _5 j' r+ z: N; R5 ]# l return "./share/";) g b& _7 [: m" g: q6 S! H& T4 K
}
! t1 p: f7 c! t, i9 Z* s/ } // 如果 share 目录不存在,使用当前目录
4 }$ W, [+ B L! I! X return "./";
2 C9 W0 F& F9 l5 B# k+ j, T }) w5 h% E' R! a8 U8 J1 I7 i. G
: M6 S+ j5 J- B% i. [
static std::string GetItemetcPath() {6 [) p$ ~+ P* c3 X% ~% u5 ^4 C
return GetSharePath() + "itemetc.csv";
& t8 e$ z- w. X; }- h( y) g }# E: Z& ~# t& V; B! j6 x* e3 Y% h
6 z' `2 z& a0 r: S; j* }0 s# z static std::string GetItemarmorPath() {$ J) v! I5 q8 C* n. c
return GetSharePath() + "itemarmor.csv";
# p8 }2 z1 M: L" T8 T+ D" [. J }& J1 b8 R" o e
" M6 c4 q9 k7 s static std::string GetItemweaponPath() {' B3 L; m+ X/ d& E
return GetSharePath() + "itemweapon.csv";
: W: t/ t0 S7 b }* V5 Y$ J4 `. K" i4 z
: i0 {0 n: J- A1 W, L
static std::string GetSkillnamePath() {6 t+ Q1 P% c+ ~. o2 s4 S; g. ~" Q
return GetSharePath() + "skillname.csv";& X$ N+ w L9 X7 a9 M
}5 x R# T* Z/ x) @$ b$ W0 X7 M
8 q' M! C! Q. [4 O& {/ Rprivate:+ R1 X! ]; l5 f4 y
static bool DirectoryExists(const std::string& path) {
. X( G7 u) R$ x$ c) R: S // 实现目录存在性检查# A: h+ d# g5 C1 N/ W0 o
struct stat info;
; `7 Z- t: [, e6 ~9 o return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);, P' K+ d* g6 N, I% ~1 _. |
}
- O5 {5 t0 ~, |. I}; |
|