Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
58 / 58 / 25
Регистрация: 01.11.2012
Сообщений: 282

Получить список только текстовых файлов в указанной директории

15.08.2015, 22:05. Показов 1742. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, нужна помощь. Как получить список только текстовых файлов в указанной директории? Как получить список файлов ясно, а вот как отсеч только текстовые не понимаю. Подскажите как определить тип содержимого файла?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2015, 22:05
Ответы с готовыми решениями:

Как вывести список файлов в указанной директории?
Подскажите пожалуйста, как вывести список файлов в указанной директории или хотя бы количество файлов в ней. Спасибо.

Получение только текстовых файлов в директории
Добрый день, код показывает все файлы которые находятся в папке. Как сделать, что бы он показывал только тхт, и определенные мною тхт...

Список всех файлов и папок указанной директории по заданной маске
Здравствуйте! Требуется написать программу, используя FileNameFilter которая выведет на экран список всех файлов и папок указанной...

6
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
15.08.2015, 22:24
Лучший ответ Сообщение было отмечено SHSerg как решение

Решение

Цитата Сообщение от SHSerg Посмотреть сообщение
отсечЬ
Текстовые - это не содержащие непечатаемых символов. Это и проверяйте. Все прочее требует специальных усилий (ex.: Исполняемый файл формата DOS/.COM может содержать только plain text).
1
58 / 58 / 25
Регистрация: 01.11.2012
Сообщений: 282
15.08.2015, 23:34  [ТС]
Спасибо. А что подразумевается под специальными усилиями?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
16.08.2015, 00:02
Лучший ответ Сообщение было отмечено SHSerg как решение

Решение

Проверка по сигнатуре, например (PS/PDF/RTF), проверка формата (например, для DOS text можно ожидать парности CR/LF), проверка на BOM (UTF-8), подсчет энтропии (от текста ожидается осмысленность), дисперсия
(различна для различных кодировок) итп.

Вот здесь еще посмотрите: Автоматическое удаление нижних колонтитулов в нескольких файлах .rtf
2
58 / 58 / 25
Регистрация: 01.11.2012
Сообщений: 282
16.08.2015, 01:47  [ТС]
А еще вопрос такой, как определить MIME-тип файла? Какие для этого есть функции. Читал про magic.h но под линукс такой нет.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
16.08.2015, 02:16
Про Linux уже мало что помню. Начните отсюда: mimetype(1) - Linux man page
1
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
20.08.2015, 13:50
Лучший ответ Сообщение было отмечено SHSerg как решение

Решение

В Linux есть утилита file, определяющая тип файла. Можно обработать её вывод
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
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void read_next(char line[], FILE* src) {
    int symbol;
    int index = 0;
    while ((symbol = fgetc(src)) != EOF) {
        if (symbol != '\n')
            line[index++] = symbol;
        else break;
    }
}
 
int main() {
    // Строим трубу
    FILE* pipe = popen("file -i *", "r");
    if (pipe == NULL || pipe == -1) {
        puts("Cannot execute `file` command.");
        return EXIT_FAILURE;
    }
    // Читаем построчно
    char line[256];
    puts("Text files in folder:");
    while (!feof(pipe)) {
        read_next(line, pipe);
        // строка с text/ означает файл с текстовым содержимым
        // также стоит искать другие MIME: application/xml и др.
        if (strstr(line, "text/") != NULL) {
            char* fileName = strtok(line, ":");
            printf("%s\n", fileName);
            memset(line, '\0', 256);
        }
    }
 
    pclose(pipe);
    return EXIT_SUCCESS;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.08.2015, 13:50
Помогаю со студенческими работами здесь

Вывести список всех файлов из указанной директории, имена которых содержат русские буквы
Доброго времени суток, данная программа написана, но, помогите понять, как ввести директорию с консоли(ехе файл нужно запустить нужно...

Вывести список всех файлов из указанной директории, имена которых содержат русские буквы
Помогите с заданием, заранее спасибо! Вывести список всех файлов из указанной директории, имена которых содержат русские буквы.

Вывести список всех файлов из указанной директории, имена которых не соответствуют шаблону имени 8.3
Разработать утилиту. Оформить ее как командный (процедурный) файл. Задание:Вывести список всех файлов из указанной директории, имена...

Вывести список всех файлов из указанной директории, имена которых содержат русские буквы
Здравствуйте! Есть такая задача: Вывести список всех файлов из указанной директории, имена которых содержат русские буквы. У меня...

Вывести список всех файлов из указанной директории, имена которых не соответствуют шаблону имени 8.3
Вывести список всех файлов из указанной директории, имена которых не соответствуют шаблону имени 8.3. Объясню, нужно вывести список файлов,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru