Tôi cần một cách để lấy đường dẫn của kịch bản chạy (thư mục chứa các tập tin nguồn), nhưngVợt: Cách lấy đường dẫn của tệp đang chạy?
(current-directory)
không bao giờ chỉ có (trong trường hợp này một ổ đĩa ngoài), nhưng thay vì để một số vị trí được xác định trước .
Tôi đã tạo tệp để thử tất cả 'đường dẫn tìm hệ thống, nhưng không có tệp nào trong số đó là tệp đang chạy! Các tài liệu Racket không giúp đỡ.
#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))
Mục đích là dành cho ứng dụng web-server cục bộ (máy chủ nhạc) sẽ sửa đổi thư mục con trong thư mục chứa tệp nguồn. Tôi sẽ mang theo ứng dụng trên một thanh USB, vì vậy nó cần để có thể xác định vị trí thư mục riêng của nó khi tôi mang nó giữa các máy và hệ điều hành với Racket được cài đặt.
@SquareCrow: Re chỉnh sửa được đề xuất của bạn - không cần thiết, định nghĩa 'HERE' mà tôi đã đề cập ở phần cuối thực hiện chính xác điều đó mà không sử dụng' chỉ đường dẫn'. –
'(đường dẫn-path-> hoàn thành đường dẫn (tìm-hệ thống-đường dẫn 'chạy tập tin)))' không hoạt động khi chạy trên DrRacket. Nó trả về đường dẫn đến DrRacket thay thế. –