Al tener una ruta relativa, ¿cómo puedo convertirla en una ruta absoluta desde la ubicación donde está el archivo elisp que estoy cargando? Es decir, tengo un archivo elisp que estoy cargando, tiene una ruta relativa y necesito uno completo.Ruta relativa a la ruta absoluta en Elisp
Respuesta
'file-truename
De la documentación:
Retorno del nombre verdadero del nombre del archivo, el cual debe ser absoluta. El nombre verdadero de un nombre de archivo se encuentra buscando enlaces simbólicos tanto en el nivel del archivo como a nivel de los directorios que lo contienen, hasta que no quedan enlaces en cualquier nivel.
La otra solución ofrecida ('expand-file-name') deja enlaces simbólicos en su lugar, que pueden ser o no lo que usted desea. 'file-truename utiliza' expand-file-name, por lo que ambos determinarán la ruta relativa del directorio predeterminado para el búfer (que es lo que estás pidiendo).
Después de ver el comentario/pregunta en una respuesta diferente, el problema es que el directorio predeterminado es el del búfer que está llamando 'cargar'.
Afortunadamente, hay una variable que 'carga conjuntos que almacena la ruta al archivo que se está cargando. Pruebe este fragmento de código a cabo:
;; this is in the file being loaded
(let ((default-directory (file-name-directory load-file-name)))
(file-truename "blih"))
Puede usar la función expand-file-name
para convertir un nombre de archivo o ruta relativa en un nombre de archivo/ruta de acceso absolutos. Mire here para obtener información adicional.
El problema es que cuando la carga ~/bla/bleh.el y evalúa (expand-file-name "blih") termino con ~/blih en lugar de ~/blah/blih. Lo necesito en relación a dónde está el archivo, no a dónde estoy cuando descargo el archivo. Gracias. – Pablo
Terminé usando:
(expand-file-name "relative/path" (file-name-directory load-file-name))
Si quiere ser más robusto, puede usar '(file-name-directory (o load-file-name buffer-file-name)'. Esto funcionará cuando se carga el archivo o se evalúa el código en él usando, por ejemplo Cx Ce. –
- 1. Ruta absoluta y ruta relativa
- 2. ruta absoluta relativa perl
- 3. Ruta relativa a la ruta absoluta en C#?
- 4. Cómo convertir ruta relativa a la ruta absoluta en Unix
- 5. Ruta relativa a la ruta absoluta en VB.NET
- 6. Ruta de absoluta a relativa (Eclipse, JSP)
- 7. Ruta de archivo absoluta a URL relativa
- 8. URL absoluta de la ruta relativa
- 9. utiliza una ruta absoluta o relativa?
- 10. Ruta absoluta de regreso a la ruta relativa a la web
- 11. ¿Cómo convertir la ruta absoluta a la ruta relativa en PowerShell?
- 12. Convierta la ruta absoluta a la ruta relativa en el archivo por lotes
- 13. En un archivo MAKE, ¿cómo obtener la ruta relativa de una ruta absoluta a otra?
- 14. Obtener URL absoluta de la ruta relativa (método refactorizado)
- 15. ¿Cómo convertir una ruta relativa a una ruta absoluta en una aplicación de Windows?
- 16. Detecta si la ruta es absoluta o relativa
- 17. ¿Cómo obtener la ruta absoluta para una ruta relativa dada programáticamente en Linux?
- 18. ¿Existe un método en C# para obtener la ruta relativa dado dos entradas de ruta absoluta?
- 19. ¿Cómo obtener la ruta absoluta del archivo desde la ruta base y relativa que contiene ".."?
- 20. Resolución de una ruta de URL relativa a su ruta absoluta
- 21. Cómo quitar la base de una ruta absoluta para obtener una ruta relativa?
- 22. ¿Cómo convierto una ruta relativa en Ant en una ruta absoluta?
- 23. Ruta relativa a un archivo con C#
- 24. Makefile: amplíe la ruta PREFIX relativa
- 25. Compruebe si una ruta es absoluta o relativa
- 26. WIN32_FIND_DATA - Obtener la ruta absoluta
- 27. MSDeploy runCommand utilizando la ruta relativa
- 28. Obtener ruta absoluta con boost :: filesystem :: ruta
- 29. ¿Cómo concatenar una ruta absoluta y una ruta relativa con QDir?
- 30. Ruta relativa de ASP.NET
¿Funciona también con directorios? – Pablo