pub fn get_work_dir() -> Result<PathBuf, AppError>Expand description
获取工作目录路径
根据运行环境自动选择合适的工作目录:
§开发环境
- 使用
CARGO_MANIFEST_DIR/workspace目录 - 测试时使用
CARGO_MANIFEST_DIR/workspace/test目录
§生产环境
- 基于可执行文件位置推断工作目录
- 如果在
bin/或sbin/目录中,使用父目录作为工作目录 - 否则使用可执行文件所在目录
§示例
use knife_util::{get_work_dir, AppError};
fn main() -> Result<(), AppError> {
let work_dir = get_work_dir()?;
println!("工作目录: {:?}", work_dir);
Ok(())
}