|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {9 B4 k, u* M1 |" Y' Q- }7 h5 m- H
public:
' n* S; m0 F2 ]% p1 D- \, v static std::string GetSharePath() {
6 p$ b; t3 X4 S1 |* M // 优先检查 share 目录) B$ M! Y) \: e: _* z
if (DirectoryExists("./share/")) {
" C* c4 q/ G( x, e# Q7 N6 K% l return "./share/";
N( x! R6 _% ~, g }
' g: M; I, r* x' i4 v) R // 如果 share 目录不存在,使用当前目录# L0 w) j" w0 ~
return "./";
6 z2 r9 [* i6 L6 W( h6 j }
, u6 C) U# A3 R1 Z$ P% F
; P, E# D. h! `& p) }2 h static std::string GetItemetcPath() {
; W% y$ V: B* c; _ J return GetSharePath() + "itemetc.csv";: y9 U- R/ ~' }; Y! T; w
}0 `$ Q- i( c) x
% ~) ^9 a1 n- m7 r7 r2 H6 ~, { static std::string GetItemarmorPath() {, Z6 g& g; j6 x9 C- R* b/ E- W
return GetSharePath() + "itemarmor.csv";) ]/ R2 @6 n5 L8 p0 ]6 K
}
: N- O" g* ^; h# I- ?! a- u! S
& a) B* ]3 b4 I6 p! K& l static std::string GetItemweaponPath() {
7 K6 H) p, ]* |6 ], V return GetSharePath() + "itemweapon.csv";
# ^3 r) c( n" F/ D9 f' } }6 u* [" P' R: s0 S9 T
' H9 Y( C% K W; p+ @9 L
static std::string GetSkillnamePath() {
* _( T, h$ w! f return GetSharePath() + "skillname.csv";+ ~1 l6 v$ \ D
}
! t1 n5 B, U. Y* M. E, U; |+ | 3 X I, f6 E* O
private:4 w& _7 @* [. o: V4 Z9 d6 D
static bool DirectoryExists(const std::string& path) {
. A8 a! i3 m* y# J8 T' b/ F3 h$ Z // 实现目录存在性检查) M& W, E/ X" y, Z. a9 Y' N9 B
struct stat info;0 l' J0 i$ F5 l
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);
' w& ?+ |) H! J }
6 L z+ e# k8 ^( A}; |
|