Использование относительных путей без указанного базового пути (то есть относительно текущего каталога) обычно является плохой идеей.
Единственное частое исключение, о котором я могу сказать, - это относительные пути, передаваемые в качестве параметра командной строки в приложение.
В частности, текущий каталог не идентичен каталогу приложения. Это может быть любой каталог при запуске, и общие диалоги (в зависимости от их флагов) могут изменить его. Кроме того, это переменная для процесса, а не для потока, поэтому другой поток может изменить его в любое время.
Поэтому я настоятельно рекомендую создать абсолютный путь из вашего относительного пути перед тем, как получить к нему доступ (см. Статью «Собачьи уши», как это сделать)