Si prega di aiutare non sto ottenendo come implementare una funzione che restituisce il percorso completo di tale file utilizzando C/C++?Come ottenere il percorso completo semplicemente dando il nomefile?
risposta
UNIX/Linux:
#include <limits.h>
#include <stdlib.h>
char *full_path = realpath("foo.dat", NULL);
...
free(full_path);
o:
char full_path[PATH_MAX];
realpath("foo.dat", full_path);
di Windows:
#include <windows.h>
TCHAR full_path[MAX_PATH];
GetFullPathName(_T("foo.dat"), MAX_PATH, full_path, NULL);
Non esiste una soluzione universale? – Pedro77
In C++ 17, c'è ['std :: filesystem :: canonical'] (http://en.cppreference.com/w/cpp/filesystem/canonical). Per gli standard precedenti, è disponibile come parte della libreria ['boost :: filesystem'] (http://www.boost.org/doc/libs/1_64_0/libs/filesystem/doc/index.htm). Non penso che ci sia una funzione simile nella libreria standard C, però. – Wintermute
Che cosa succede se due file con lo stesso nome in posizione diversa? – Himanshu
Hai il nome del file o il puntatore del file? – nikhilr57
uguale a: http://stackoverflow.com/questions/1661982/how-do-i-get-the-full-path-for-a-filename-command-line-argument – Neska