58 / 58 / 25
Регистрация: 01.11.2012
Сообщений: 282

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

15.08.2015, 22:05. Показов 1756. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru