История такая, в java находится файл по относительному пути(res/filetxt/txt1.txt), из java я загружаю код C++ который закрыт в DLL. И когда выполняется этот код, я должен прочитать этот самый файл, на как мне указать относительный путь? и относительно чего он будет, весь прикол в том , что по итогу я скидываю jar файл на другой пк, и код C++ не видит этот самый txt , получается теперь полный путь этого самого файла зависит от места обитания самого jar?
hHup , быстрее всего будет сделать проверку: getcwd() на низком уровне и соответствующий ему аналог на высоком. Если семантика путей сохраняется между низким и верхним уровнем (а обычно это именно так), то тебе ничего придумывать не надо.
Ну и, конечно же, ни кто тебе не запретит взять абсолютный путь до файла на верхнем уровне перед передачей его на низкий. :)
Сергей Горностаев, ,блин, я запутался, у меня есть папка res в ней файл file.txt и dll, чтобы из java кода работать с файлом.txt, я просто копирую относительный путь и работаю с ним, т.к. папка res всегда ездит с моим jar файлом, вот и с dll мне тоже нужно работать с этим файлом, но путь приходится указывать полный до file.txt , но если мой jar файл компилируют на другом пк, то этот прямой путь меняется.. В этом проблема.
Вообще -то хорошо прятать такие вещи в resources, и загружать их относительно через getResource()
Вот здесь подробно написано - https://skipy-ru.livejournal.com/5343.html
Ну и текущий каталог можно получить так
Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current relative path is: " + s);
hHup, а кто мешает передавать путь в абсолютном формате?
NFS и SMB такое поддерживают.
Или я не понял вопроса?
Относительный путь это ".\dir\file.txt" или если нужно выйти на уровень выше "..\dir\file.ext"