You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pharo是否支持路径中使用家目录标识~?如何解析~开头的路径

Pharo 8 波浪号家目录路径解析方法

Pharo 8 中String>>asPath已默认取消了波浪号()的家目录自动展开特性,该符号会被识别为普通目录名称,因此直接调用`asPath`/`asFileReference`会得到错误的路径结果,可通过以下两种标准方式处理带的家目录路径:

方法1:使用FileLocator拼接路径(最推荐)

FileLocator是Pharo提供的标准路径定位工具,FileLocator home直接指向当前用户家目录,使用/运算符即可拼接后续路径段,自动适配不同操作系统的路径格式:

"获取对应文件的引用"
pubKeyFile := FileLocator home / '.ssh' / 'id_rsa.pub'.
"判断文件是否存在"
pubKeyFile exists. "文件存在时返回true"
"获取绝对路径字符串"
pubKeyFile fullName.

方法2:直接解析带~的字符串路径

如果你拿到的是已经写好的带~的完整路径字符串,使用Path fromString:方法即可自动完成波浪号展开:

"解析带~的路径字符串"
pubKeyPath := Path fromString: '~/.ssh/id_rsa.pub'.
"转为文件引用判断存在性"
pubKeyPath asFileReference exists.
"获取绝对路径字符串"
pubKeyPath fullName.

补充说明

旧版本Pharo中String>>asPath确实支持波浪号展开,后续版本为了统一路径解析逻辑,把特殊字符处理收拢到了Path fromString:和FileLocator体系中,所以才会出现示例和实际运行结果不一致的情况。

内容的提问来源于stack exchange,提问作者melkyades

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:24:03