我从未在 Windows 机器上使用过 SML(以前在带有 emacs 的 unix 机器上使用过)。
在我的生活中,我在 sml 环境中找不到当前目录。如果我尝试:使用“filename.sml”它会引发异常..我无法找到放置文件的位置..
btw 文件是用 notepad++ 编写的,仅以 .sml 扩展名命名。
当前工作目录将是您启动 SML 解释器的位置。如果您的桌面上有快捷方式,那么我猜您可以在快捷方式的属性中设置 CWD(我不是 Windows 用户),我猜默认情况下,它是您拥有 SML 的目录/NJ 已安装。
如果您从命令行启动 sml 解释器,那么 CWD 就是您启动解释器时所在的目录。
您可以使用以下命令让解释器输出其 CWD
OS.FileSys.getDir()
您还可以使用OS.FileSys.chDir将 CWD 更改为另一个工作目录。
然而,在尝试“加载” sml 文件时使用绝对路径更容易use
更新。
很简单:您可以执行以下操作
- OS.FileSys.chDir("/tmp"); (* Go to the tmp directory *)
val it = () : unit
- OS.FileSys.getDir(); (* Verify that we did go to the tmp directory *)
val it = "/tmp" : string
- OS.FileSys.chDir("/home/jesper"); (* Go to my home directory *)
val it = () : unit
- OS.FileSys.getDir(); (* Verify where we did go. *)
val it = "/home/jesper" : string
在 Windows 文件系统上,您显然必须转义退格键。下面的代码应该可以工作,但我无法测试它,因为我没有 Windows。
OS.FileSys.chDir("C:\\Users\\username\\Desktop");
在您写的评论中,您忘记了最后两个退格键。