如何在Pharo环境中打开Windows系统的文件及资源管理器?
在Pharo中Windows 10下打开文件/资源管理器的实用方案
方案1:用Pharo自带的Win32Shell API(推荐,无需额外装库)
Pharo本身内置了调用Windows底层API的能力,不用依赖第三方库,稳定性更高,适合新手操作:
打开PDF、WAV这类系统已注册的文件:
把代码里的文件路径换成你自己的直接运行即可:| filePath | filePath := 'C:\Users\你的用户名\Desktop\test.pdf'. "换成WAV或其他文件路径也适用" Win32Shell shellExecute: 'open' file: filePath parameters: '' directory: '' show: 1.小提示:
show: 1代表正常窗口打开,改成3是最大化窗口,2是最小化窗口,可按需调整。打开资源管理器到指定文件夹:
| folderPath | folderPath := 'C:\你的项目文件夹路径'. Win32Shell shellExecute: 'open' file: folderPath parameters: '' directory: '' show: 1.若想打开资源管理器默认界面,把
folderPath改成空字符串''就行。
方案2:修复Pharo-OS-Windows的使用问题
你之前用WinShell shellOpen:无反应,大概率是调用方式或版本匹配的问题:
- 先检查路径:确保路径没有中文或特殊字符,用标准Windows格式(比如
C:\test.pdf,别用斜杠/)。 - 试试带完整参数的调用方式:
如果还是不行,可能是库和你的Pharo版本不兼容,重新加载对应版本的Pharo-OS-Windows即可(比如Pharo 11/12对应最新版库)。WinShell shellOpen: 'C:\pharo.pdf' withParameters: '' inDirectory: '' show: SW_SHOWNORMAL.
方案3:命令行调用(兜底方案)
Windows的start命令可以直接唤起系统默认程序,Pharo里用SystemCommandLine执行即可:
- 打开文件:
注意:中间的| command | command := 'start "" "C:\Users\你的用户名\Desktop\test.wav"'. SystemCommandLine run: command.""是占位窗口标题,必须添加,不然路径带空格会出错。 - 打开资源管理器:
SystemCommandLine run: 'start explorer.exe "C:\你的文件夹路径"'.
新手踩坑提醒
- 优先使用绝对路径,别用相对路径,避免Pharo找不到目标文件/文件夹。
- 测试时先选桌面这类确定存在的简单文件,路径要写全写对。
- 要是代码没报错但无反应,试试右键以管理员身份运行Pharo,部分路径需要权限才能访问。
内容的提问来源于stack exchange,提问作者Rui VP
相关产品推荐
相关产品推荐

