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

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

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

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

Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2011, 17:00
Ответы с готовыми решениями:

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

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

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

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

Добавлено через 45 секунд
Это вообще с перла, кажется...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
24.03.2011, 18:10
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это вообще с перла, кажется...
Это в PERL оно из С пришло
man opendir
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 18:15
Есть подозрение, что не для никсов пишут.)
0
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
24.03.2011, 19:05  [ТС]
пишу в "gedit" Fedora
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 19:12
Тогда со своим ВинАПИ я умолкаю.)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
24.03.2011, 19:26
Рома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  [ТС]
ну я только учусь.... Спасибо

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

А можете объяснить, что и как значит ? а то не все написанное понимаю
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.03.2011, 16:27
Цитата Сообщение от Рома123 Посмотреть сообщение
А можете объяснить, что и как значит ? а то не все написанное понимаю
Если что-то непонятно - напиши в консоли:
Code
1
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);
}
Пример:
Code
1
2
3
4
5
6
7
8
9
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
Еще вариант с обходом дерева ФС начиная с заданного пути(точнее путей).
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  [ТС]
С выше описанным вроде разобрался.....
Теперь программу нужно переделать так, чтобы она принимала параметром каталог, содержимое которого нужно вывести, если никакого параметра не указано - то пусть выводит содержимое текущего каталога....
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
07.04.2011, 15:56
Рома123, смотри мой пример, так есть почти все, что тебе нужно
1
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
08.04.2011, 00:02  [ТС]
Цитата Сообщение от Nameless One Посмотреть сообщение
Рома123, смотри мой пример, так есть почти все, что тебе нужно
окей, буду разбиратся, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2011, 00:02
Помогаю со студенческими работами здесь

Сравнение содержимого каталогов
В задаче сказано: &quot;написать программу для сравнения содержимого каталогов&quot; Подсказали что нужно использовать find first,find next. Так...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru