Как я могу ссылаться на файлы на сетевых дисках в среде Windows из организационного режима?
Я получаю сообщение об ошибке:
eval: Ошибка ShellExecute: система не может найти указанный файл.
с такой ссылкой:
[[//общий/путь/к/файлу.csv]]
Как я могу ссылаться на файлы на сетевых дисках в среде Windows из организационного режима?
Я получаю сообщение об ошибке:
eval: Ошибка ShellExecute: система не может найти указанный файл.
с такой ссылкой:
[[//общий/путь/к/файлу.csv]]
У меня тоже была такая же проблема. Я проследил это до того, как org-open-at-point преобразовал PATH во что-то, что w32-shell-execute не может открыть. Используя дефадвице ниже, я могу открыть // и \ сетевые пути.
(defadvice w32-shell-execute (around
workaround-for-org-w32-shell-execute
activate)
"Replace w32-shell-execute PATH directory seperators to Windows
backslash when PATH starts with '//' (i.e. Network path). This
allows allowing org-mode links in org-mode files like
[[\\\\myserver\\mypath\\mydoc.doc][mydoc.doc]] to be opened by
org-open-at-point. Forward slashes / are also accepted.
org-open-at-point transforms the links to //../../ but
unfortunately w32-shell-execute does not accept that."
(let ((operation (ad-get-arg 0))
(path (ad-get-arg 1)))
(when (and (string-equal operation "open")
(eql (string-match "//" path 0) 0))
(setq path (replace-regexp-in-string "/" "\\\\" path))
;; debug (message "Opening %s" path)
(ad-set-arg 1 path))
ad-do-it))
Попробуйте [[//127.0.0.1/c$$]]
Это быстрое и грязное исправление, но «оно работает на моей машине».
Проверено на Emacs 24.2, в организационном режиме 7.9.11.
Изменить: комментарий о том, что «Однако для меня большой вариант использования — это открытие других типов файлов (например, файлов MS Office)», работает для меня, когда я добавляю следующие ассоциации в org-mode. Я могу открыть Microsoft Word, Excel и т. д., используя обычные URL-адреса организационного режима, такие как [[\server\share\piyo.doc]]
(mapc (lambda (file-name-matcher)
(add-to-list 'org-file-apps
(cons file-name-matcher 'default) 'append))
(list "\\.doc\\'"
"\\.xls\\'"
"\\.ppt\\'"))
Изменить: комментарий к «[[file+sys:]]» — это «открыть [файл] через ОС, например, дважды щелкнуть», что может быть достигнуто с помощью вышеуказанных ассоциаций. На моем компьютере с Windows мне не понадобился "[[file+sys:]]".
Некоторые части Windows и некоторые приложения Windows не поддерживают пути UNC. Emacs это делает, но похоже, что вы (или org-mode) пытаетесь выполнить какую-то программу, а не просто используете find-file для просмотра файла в Emacs. Обходной путь — смонтировать //share/path
как X:
и использовать [[X:/to/file.csv]]
в качестве ссылки.
Если ваш путь UNC включает один из административных общих ресурсов, связанных с драйверами удаленных дисков (например, \server\c$ или \server\d$, вам нужно удвоить $ после буквы диска, чтобы они выглядели как \server \c$$ или \сервер\d$$