DIR *dir;
struct dirent *entry;
if ((dir = opendir (argv[1])) != NULL) {
while ((entry = readdir (dir)) != NULL) {
if(strcmp(entry->d_name,argv[2])==0)
printf ("%s\n", entry->d_name);
}
//recursive call, can post if needed
Я пытаюсь создать программу для поиска всех файлов/папок с определенным именем, но с моим текущим кодом. Я получаю полный путь к файлу, поэтому я не могу используйте strcmp, чтобы найти мой путь. Предположим, что argv [2] == «Программы» тогда он не найдет его, если путь «c: // Programs». Есть ли способ в C, чтобы просто получить имя каталога?Получить имя каталога без полного пути (C unix)
'entry-> d_name' должно содержать только имя файла/каталога, а не полный путь. Что вы видите в этой области? – dbush
Взгляните на basename, он возвращает последний элемент в пути – redobot
basename был именно тем, что я искал, thx. – Prototype