|
|
发表于 2025-11-4 08:38:23
|
显示全部楼层
class Config {2 c) T: t) @1 z
public:" y# ] a5 |0 E+ u6 L7 S7 _4 Q
static std::string GetSharePath() {
# b5 v4 g( [# ` // 优先检查 share 目录6 j$ G% B7 ^- v& I o
if (DirectoryExists("./share/")) {9 j3 F7 w# V# R$ r
return "./share/";" g" |* m" z5 i( s# x( z# @5 b
}
$ |7 G) y# V. ` // 如果 share 目录不存在,使用当前目录- _' c* {- q% ?. G! r' |& C
return "./";
) [3 |7 f4 Z) G }, ?9 K& s. z4 h' c; H- \ ^" \* h
% Z2 Z; I* F P
static std::string GetItemetcPath() {
4 w5 R' i- a& f1 D return GetSharePath() + "itemetc.csv";( \; n! |2 `+ T7 ~$ L5 ^
}
% U# Q( L# _* c3 e( {/ v; r . W" |9 L8 H8 g9 D/ J8 t
static std::string GetItemarmorPath() {
, ^. g% u4 l- }+ I- Y- p6 L, ?: p return GetSharePath() + "itemarmor.csv";
# D; P# }* m9 O4 F0 f2 Z' S }
9 s/ A8 g5 a! e4 B. s/ b% Z2 K+ L
* ^) P4 _; a. ^# X0 R* Z. Z; G4 | static std::string GetItemweaponPath() {
* r) R" b6 ~: W+ q/ N# R return GetSharePath() + "itemweapon.csv";! ]' q9 O. V3 l0 n4 C; K8 s' h- b4 t
}
. a6 o& x ~. K# t
$ g+ C# d! q# y7 V- F& d: e/ d static std::string GetSkillnamePath() {; b9 T. x+ ?* q! v. I; q
return GetSharePath() + "skillname.csv";2 Y: A, `2 p( L* ~2 N2 |
}9 T% M5 Z7 a7 E8 W1 M; P/ @5 ?
! J* C% M2 B$ }) Oprivate:
* X! [! l& [, @$ w& [$ \ static bool DirectoryExists(const std::string& path) {
; ^& {/ @' J- T // 实现目录存在性检查
+ b, c6 j9 d: \! o0 b: k. P7 } struct stat info;" B6 v( b! a) l6 F$ `
return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR);. A5 A: h+ Z* a' g* f: k
}! d3 v4 A% Z6 k
}; |
|