программирование
May 6, 2024

Абсолютный путь относителен

Вы не знаете, на какой операционной системе будет работать ваше приложение. И в какую папку сложат ваш проект. Вы можете работать на макос, ваш коллега пишет на винде, а в продакшн запустят на убунте.

Необходимо надежно получать путь к файлу для чтения / записи, независимо от платформы и места хранения.

Нельзя указать просто захардкоженный абсолютный путь к файлу, просто потому что на всех ОС будет разный корень, не говоря уже о разных именах пользователя. Вам нужно знать путь к файлу и путь к корню, откуда вы работаете.

Вы не сможете использовать абсолютный путь к файлу в хранилище, так как не знаете корень хранилища заранее. К примеру, у вас может быть отдельно бакет S3 и отдельно путь к файлу. И только при обращении вы будете склеивать полный путь.

Абсолютный путь тоже строится относительно. Вы можете быть уверены, что файлы вашего проекта будут расположены именно в таком виде на любой ОС. Поэтому вы выбираете файл внутри вашего проекта, относительно которого вы будете строить абсолютный путь. Например, это файл, где вы читаете конфигурацию. Берете путь к файлу, через него получаете путь к корню вашего проекта, и уже относительно этого значения строите абсолютные пути.

И да, вот эти абсолютные пути, построенные относительно корня проекта, удобнее и надежнее, чем обычные относительные пути.