我需要一种方法来获取运行脚本的路径(包含源文件的目录),但是
(current-directory)
从不指向那里(在这种情况下是外部驱动器),而是指向某个预定义的位置。
我创建了一个文件来尝试所有的“查找系统路径”,但它们都不是正在运行的文件!球拍文档没有帮助。
#lang web-server/insta
(define (start request)
(local [{define (build-ul items)
`(ul ,@(map itemize items))}
{define (itemize item)
`(li ,(some-system-path->string (find-system-path item)))}]
(response/xexpr
`(html
(head (title "Directories"))
(body (h1 ,"Some Paths")
(p ,(build-ul special-paths)))))))
(define special-paths (list 'home-dir
'pref-dir
'pref-file
'temp-dir
'init-dir
'init-file
;'links-file ; not available for Linux
'addon-dir
'doc-dir
'desk-dir
'sys-dir
'exec-file
'run-file
'collects-dir
'orig-dir))
目的是用于本地 Web 服务器应用程序(音乐服务器),它将修改包含源文件的目录下的子目录。我将在 U 盘上携带该应用程序,因此当我在安装了 Racket 的机器和操作系统之间携带它时,它需要能够找到自己的目录。