Message 1 of 10
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I’m trying to create a function to generate a file and write the path, but the backslashes (\) aren’t displaying correctly when I select them. How can I fix this?
(setq software_name_search_path "C:\\\Users\Public\Music\")
the goal is this:
(setq software_name_search_path "C:\\Users\\Public\\Music\\")
(defun formatar-caminho (caminho)
"Formata um caminho para usar barras duplas em todas as barras invertidas."
(vl-string-subst "\\\\" "\\" caminho))
(defun criarouatualizar ()
(setq cfg-path "C:\\software_name\\values.cfg")
(setq path-installation (strcat (getvar "roamablerootprefix") "support\\installation_folder.lsp"))
(setq search-path nil)
(if (findfile cfg-path)
(setq search-path "C:\\software_name\\")
(progn
(setq search-path (LM:browseforfolder "Select a folder" "C:\\" 0))
(if (null search-path)
(progn
(princ "\nNenhuma pasta selecionada. A operação foi cancelada.")
(exit)
)
)
(setq search-path (formatar-caminho search-path))
)
)
(setq search-path (formatar-caminho search-path))
(setq _open (open path-installation "w"))
(if _open
(progn
(write-line (strcat "(setq software_name_search_path \"" search-path "\\\")") _open)
(close _open)
(princ (strcat "\nArquivo criado/atualizado com sucesso: " path-installation))
)
(princ "\nErro: Não foi possível abrir o arquivo para escrita.")
)
(princ)
)
;; Browse for Folder - Lee Mac
;; Displays a dialog prompting the user to select a folder.
;; msg - [str] message to display at top of dialog
;; dir - [str] [optional] root directory (or nil)
;; bit - [int] bit-coded flag specifying dialog display settings
;; Returns: [str] Selected folder filepath, else nil.
(defun LM:browseforfolder ( msg dir bit / err fld pth shl slf )
(setq err
(vl-catch-all-apply
(function
(lambda ( / app hwd )
(if (setq app (vlax-get-acad-object)
shl (vla-getinterfaceobject app "shell.application")
hwd (vl-catch-all-apply 'vla-get-hwnd (list app))
fld (vlax-invoke-method shl 'browseforfolder (if (vl-catch-all-error-p hwd) 0 hwd) msg bit dir)
)
(setq slf (vlax-get-property fld 'self)
pth (vlax-get-property slf 'path)
pth (vl-string-right-trim "\\" (vl-string-translate "/" "\\" pth))
)
)
)
)
)
)
(if slf (vlax-release-object slf))
(if fld (vlax-release-object fld))
(if shl (vlax-release-object shl))
(if (vl-catch-all-error-p err)
(prompt (vl-catch-all-error-message err))
pth
)
)
; (setq software_name_search_path "C:\\\Users\Public\Music\")
; (criarouatualizar)
Solved! Go to Solution.