Ho bisogno di un modo per ottenere il percorso dello script in esecuzione (la directory che contiene il file di origine), maRacket: come recuperare il percorso del file in esecuzione?
(current-directory)
mai punti lì (in questo caso un disco esterno), ma piuttosto in una certa posizione predefinita .
Ho creato un file per provare tutti i "find-system-path", ma nessuno di questi è il file in esecuzione! I documenti Racket non aiutano.
#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))
Lo scopo è per un'applicazione web-server locale (server musicale) che modificherà sottodirectory sotto la directory che contiene il file di origine. Porterò l'app su una chiavetta USB, quindi deve essere in grado di localizzare la propria directory mentre la porto tra macchine e sistemi operativi con Racket installato.
@SquareCrow: Re la tua modifica suggerita - non è necessaria, la definizione "QUI" che ho citato alla fine fa esattamente questo, senza usare "solo percorso". –
'(percorso-path (percorso-> percorso-completo (find-system-path 'run-file))))' non funziona quando è in esecuzione su DrRacket. Invece restituisce il percorso di DrRacket. –