Как узнать путь файла с помощью имени файла?

Вот водиться имя файла в программу с помощью аргумента. Можно ли как-то узнать его путь полный путь? Реализация с помощью библиотеки Windows.h


Ответы (1 шт):

Автор решения: Harry

Собственно, а зачем <windows.h>, если можно использовать стандартную библиотеку С++?

Функция absolute() из <filesystems>.

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
 
int main()
{
    std::filesystem::path p = "foo.c";
    std::cout << "Current path is " << std::filesystem::current_path() << '\n';
    std::cout << "Absolute path for " << p << " is " << fs::absolute(p) << '\n';
}

Но если очень хочется непереносимости — то без проблем, GetFullPathName к вашим услугам.

#include <iostream>
#include <windows.h>
 
int main()
{
    char fullpath[300];
    GetFullPathName("foo.c",300,fullpath,0);
    std::cout << "Absolute path is " << fullpath << '\n';
}
→ Ссылка