Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить список файлов в директории на Си / 8 сообщений из 8, страница 1 из 1
14.04.2017, 14:38
    #39438761
Yulia1995
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
Подскажите, пожалуйста, как на Си (C++ не подходит) получить список файлов в заданной директории.
...
Рейтинг: 0 / 0
14.04.2017, 16:16
    #39438848
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
man opendir, readdir, closedir.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.04.2017, 16:24
    #39438854
д0kХ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
Yulia1995Подскажите, пожалуйста, как на Си (C++ не подходит) получить список файлов в заданной директории.

гугл в помощь

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
#include <dirent.h> 
#include <stdio.h> 
#include <string.h>

#define NORMAL_COLOR  "\x1B[0m"
#define GREEN  "\x1B[32m"
#define BLUE  "\x1B[34m"



/* let us make a recursive function to print the content of a given folder */

void show_dir_content(char * path)
{
  DIR * d = opendir(path); // open the path
  if(d==NULL) return; // if was not able return
  struct dirent * dir; // for the directory entries
  while ((dir = readdir(d)) != NULL) // if we were able to read somehting from the directory
    {
      if(dir-> d_type != DT_DIR) // if the type is not directory just print it with blue
        printf("%s%s\n",BLUE, dir->d_name);
      else
      if(dir -> d_type == DT_DIR && strcmp(dir->d_name,".")!=0 && strcmp(dir->d_name,"..")!=0 ) // if it is a directory
      {
        printf("%s%s\n",GREEN, dir->d_name); // print its name in green
        char d_path[255]; // here I am using sprintf which is safer than strcat
        sprintf(d_path, "%s/%s", path, dir->d_name);
        show_dir_content(d_path); // recall with the new path
      }
    }
    closedir(d); // finally close the directory
}

int main(int argc, char **argv)
{

  printf("%s\n", NORMAL_COLOR);

    show_dir_content(argv[1]);

  printf("%s\n", NORMAL_COLOR);
  return(0);
}


...
Рейтинг: 0 / 0
14.04.2017, 17:13
    #39438890
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
Dimitry Sibiryakovman opendir, readdir, closedir.


Но только это не на С, это на GLIBC, на Linux, поскольку функции нестандартны.
...
Рейтинг: 0 / 0
14.04.2017, 17:23
    #39438897
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
MasterZivDimitry Sibiryakovman opendir, readdir, closedir.


Но только это не на С, это на GLIBC, на Linux, поскольку функции нестандартны.С чего это вдруг???? opendir, readdir, closedir это как раз стандартный Си.
У GLIBC есть свои функции: g_dir_open(), g_dir_read_name(), g_dir_rewind(), g_dir_close(). И да, их легко узнать по префиксу.
...
Рейтинг: 0 / 0
14.04.2017, 22:01
    #39438997
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
White Owl,

Это POSIX, но не ANSI функции
...
Рейтинг: 0 / 0
14.04.2017, 22:40
    #39439007
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
SiemarglWhite Owl,

Это POSIX, но не ANSI функции
топикстаотер не детализировал.
может у него 8051 - целевая платформа
...
Рейтинг: 0 / 0
17.04.2017, 05:41
    #39439457
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список файлов в директории на Си
Может кому пригодится:
FindFirstFile/FindNextFile
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить список файлов в директории на Си / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]