Щодо відносних шляхів, ось що я зробив. Мені відомо вік цього питання, я просто хочу надати більш просту відповідь, яка працює в більшості випадків:
Скажіть, у вас такий шлях:
"path/to/file/folder"
Чомусь з цим добре спрацьовані Linux-файли, виконані в затемненні. Однак, Windows дуже заплутався, якщо йому подати такий шлях!
Як зазначено вище, існує декілька способів дістати поточний шлях до виконуваного файлу, але найпростіший спосіб, який я знаходжу, створює шарм у більшості випадків - додавання його до ФРОНТУ вашого шляху:
"./path/to/file/folder"
Просто додавання "./" повинно вас сортувати! :) Тоді ви можете почати завантажувати з будь-якого каталогу, доки ви хочете, з самим виконуваним файлом.
EDIT: Це не спрацює, якщо ви спробуєте запустити виконуваний файл з коду :: блоків, якщо це середовище розробки, яка використовується, оскільки чомусь код :: блоки не завантажують речі правильно ...: D
EDIT2: Деякі нові речі, які я знайшов, це те, що якщо ви вказали статичний шлях, такий як цей у своєму коді (якщо припустити Example.data - це те, що вам потрібно завантажити):
"resources/Example.data"
Якщо ви запускаєте додаток із фактичного каталогу (або в Windows, ви робите ярлик і встановлюєте робочу діру на свою dir-програму), вона працюватиме так. Майте це на увазі під час налагодження проблем, пов’язаних із відсутніми шляхами до ресурсів / файлів. (Особливо в IDE, які встановлюють неправильний робочий dir при запуску збірки exe з IDE)