Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/56: Рейтинг темы: голосов - 56, средняя оценка - 4.89
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
1

Просмотр содержимого каталогов

24.03.2011, 17:00. Показов 11433. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообще нужно написать програмку для просмотра содержимого каталога. Имя каталога вводить с клавиатуры. Знаю что там нужно использовать opendir, readdir, closedir... Но как его все правильно организовать незнаю =\

Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2011, 17:00
Ответы с готовыми решениями:

Просмотр содержимого каталогов, перемещение каталогов
И снова я,но может кто-нибудь, последний раз выручить меня с ассемблером ?:cry: Осталось сделать...

Перемещение и просмотр содержимого каталогов на диске
Написать на языке ассемблера программу для перемещения и просмотра содержимого каталогов на диске

Изменение содержимого каталогов
Задали написать командный сценарий shell но чтото не оч получаеться. Помогите кто может: Написать...

Сравнение содержимого каталогов
В задаче сказано: "написать программу для сравнения содержимого каталогов" Подсказали что нужно...

12
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 17:56 2
На WinAPI надо или как?
Не припомню в WinAPI таких функций.

Добавлено через 45 секунд
Это вообще с перла, кажется...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
24.03.2011, 18:10 3
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это вообще с перла, кажется...
Это в PERL оно из С пришло
man opendir
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 18:15 4
Есть подозрение, что не для никсов пишут.)
0
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
24.03.2011, 19:05  [ТС] 5
пишу в "gedit" Fedora
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 19:12 6
Тогда со своим ВинАПИ я умолкаю.)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
24.03.2011, 19:26 7
Рома123, ну а с чем проблема-то? Вот так печатает директорию, из которой запущено
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
    
int main(void){
    DIR * dir;
    struct dirent * de;
    
    if ( ( dir = opendir(".") ) == NULL ){
        fprintf(stderr, "Forbidden, niht permission!\n");
        return 1;
    }
    
    while ( de = readdir(dir) )
        printf("%s\n", de->d_name);
    
    closedir(dir);
    return 0;
}
Придумайте, как какую-нибудь другую распечатать...
1
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
25.03.2011, 17:19  [ТС] 8
ну я только учусь.... Спасибо

Добавлено через 21 час 50 минут

А можете объяснить, что и как значит ? а то не все написанное понимаю
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.03.2011, 16:27 9
Цитата Сообщение от Рома123 Посмотреть сообщение
А можете объяснить, что и как значит ? а то не все написанное понимаю
Если что-то непонятно - напиши в консоли:
Код
man НАЗВАНИЕ_ТОГО_ЧТО_НЕПОНЯТНО
Название директории передается как аргумент программы.
C
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
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <err.h>
#include <stdlib.h>
#include <errno.h>
 
int main(int argc, char* argv[])
{
    DIR* dir;
    struct dirent* de;
 
    if(argc == 1)
    errx(1, "Expected directory name\nUsage: %s DIRECTORY", *argv);
 
    else if(argc > 2)
    errx(1, "Extra arguments were specified\nUsage: %s DIRECTORY", *argv);
 
    if((dir = opendir(argv[1])) == NULL)
    err(1, "opendir: `%s'", argv[1]);
 
    printf("Printing contents of directory `%s'.\n", argv[1]);
    
    while((de = readdir(dir)) != NULL)
    printf("%s\n", de->d_name);
 
    if(errno == EBADF)
    err(1, "readdir: `%s'", argv[1]);
        
    if(closedir(dir) == -1)
    err(1, "closedir: `%s'", argv[1]);
    
    exit(0);
}
Пример:
Код
nameless@nameless-laptop:~/c-sample$ ./c-sample .
Printing contents of directory `.'.
Makefile
main.o
.
main.c
c-sample
..
nameless@nameless-laptop:~/c-sample$

Не по теме:

Функции печати ошибок, правда, нестандартные. Но легко реализуются

0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
28.03.2011, 18:57 10
Еще вариант с обходом дерева ФС начиная с заданного пути(точнее путей).
C
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
#include <sys/types.h>
#include <sys/stat.h>
#include <err.h>
#include <errno.h>
#include <fts.h>
#include <stdio.h>
 
int
main(int argc, char *argv[])
{
        FTS      *tree;
        FTSENT   *node;
        char     *curdir[] = {".", NULL};
        char    **paths;
 
        paths = argc > 1 ? argv + 1 : curdir;
 
        if ((tree = fts_open(paths, FTS_NOCHDIR, NULL)) == NULL)
                err(1, "fts_open");
 
        while ((node = fts_read(tree)))
                printf("%s\n", node->fts_path);
        if (errno)
                err(1, "fts_read");
 
        if (fts_close(tree))
                err(1, "fts_close");
 
        return (0);
}
1
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
06.04.2011, 20:39  [ТС] 11
С выше описанным вроде разобрался.....
Теперь программу нужно переделать так, чтобы она принимала параметром каталог, содержимое которого нужно вывести, если никакого параметра не указано - то пусть выводит содержимое текущего каталога....
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
07.04.2011, 15:56 12
Рома123, смотри мой пример, так есть почти все, что тебе нужно
1
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
08.04.2011, 00:02  [ТС] 13
Цитата Сообщение от Nameless One Посмотреть сообщение
Рома123, смотри мой пример, так есть почти все, что тебе нужно
окей, буду разбиратся, спасибо
0
08.04.2011, 00:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2011, 00:02
Помогаю со студенческими работами здесь

Вывод содержимого каталогов
Разработать программу, которая выводит на экран содержимое текущего каталога в порядке возрастания...

Перемещение содержимого из каталогов (tasm)
Добрый день. Задание следующее: создать программу для перемещения и просмотра содержимого...

Одновременное чтение содержимого каталогов в нескольких процессах
Здравствуйте! Каким образом можно осуществить выполнение поиска файлов в нескольких процессах...

Как копировать структуру каталогов без содержимого?
Как копировать структуру каталогов без содержимого? Н-р, копировать структуру диска С на другой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru