Расположение файла ресурсов в том же каталоге - PullRequest
0 голосов
/ 02 июня 2019

Я создаю приложение, которому нужен доступ к ресурсу в той же папке (ему нужен файл xsd для проверки входного файла).

Как мне надежно добраться до этого файла xsd?

Для уточнения:

  1. Мне нужно иметь возможность вызвать исполняемый файл:

    cd not/the/directory/of/the/program
    path/to/program -c config.xml
    
  2. Какой путь использовать здесь?

    subprocess.Popen("xmllint --noout --schema ?/?/config.xsd " + configfilename)
    

1 Ответ

0 голосов
/ 02 июня 2019

Посмотрите на нулевой аргумент командной строки, который получает ваша программа. Обычно это название программы и может также включать путь к программе. Объедините это с текущим каталогом. Затем используйте realpath или какой-либо его эквивалент, чтобы избавиться от символических ссылок. Тем не менее, я думаю, что есть еще несколько угловых случаев, когда этот подход может потерпеть неудачу.

Вы не указали / язык программирования / или используемую вами операционную систему. Если вы пишете скрипт bash, смотрите здесь: https://stackoverflow.com/a/246128/11451509

Для Python см. Как получить путь к текущему исполняемому файлу в Python?

Если операционная система Linux, вы также можете пройти через псевдофайловую систему /proc, как описано здесь: https://stackoverflow.com/a/738024/11451509

...