Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232

Свой класс для работы с диском

23.01.2022, 10:26. Показов 1696. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для упрощения работы с диском и файлами хочу написать свой класс.
Есть разные способы сканирования директории и работы с файлами. Возникает вопрос какой способ лучше выбрать. Я не сторонник подключения сторонних библиотек.
Склоняюсь к использованию opendir()/readdir()/closedir() (POSIX) это может работать как в linux так и в windows, мало документации
Для windows конечно можно использовать FindFirstFile()/FindNextFile()/FindClose() (Windows) что более удобно, есть документация

Что посоветуете? Может дадите ссылочку на подробную документацию для работы с диском и файлами в POSIX, для меня этот способ по моему более актуален.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2022, 10:26
Ответы с готовыми решениями:

Свой класс для работы с constexpr
Всем привет! Разбираясь с std::initializer_list и std::array, решил сделать как бы свой ArrayAutoSize. То есть что бы он делал...

Зачем в С++ реализуют свой класс для работы со строками?
Чем плохи строки С++?

Нужна программа для работы с жестким диском
настройки и мониторинга жоского диска и чтобы прога отправляля отчет по электронке почте

32
23.01.2022, 18:05
Студворк — интернет-сервис помощи студентам
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
23.01.2022, 20:02  [ТС]
Вот честно я с радостью бы стал использовать готовое решение, если оно удобно в реализации, хорошо документировано с примерами и главное работало. В данном случае filesystem конечно по описанию и примерам очень не плох, я бы его использовал. Но он у меня не компилируется, другого компилятора нет, пробовал скачивать\устанавливать другие, с ними ещё больше проблем..

Короче буду использовать closedir, opendir, readdir, rewinddir, findfirst, findnext и <fstream> для работы с файлами

Есть две проблемы:
1) при opendir, readdir получаю содержимое директории, файлы и папки всё в кучу, нужен способ определения где файл, а где директория
тут конечно можно сказать, что проверять есть ли расширение *.txt к примеру, но некоторые директории могут иметь точку, поэтому этот вариант отпадает
2) нужно получить информацию о файле: размер, время создания\модификации; атрибуты: скрытый, для чтения и др.

Как это сделать с учётом что не будет использоваться никаких filesystem и прочего?
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
23.01.2022, 20:06
Цитата Сообщение от pgb Посмотреть сообщение
что не будет использоваться никаких filesystem и прочего?
Обратиться к Господу.
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
23.01.2022, 20:31  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Обратиться к Господу.
Вашими молитвами нашёл пример
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
23.01.2022, 21:09
pgb, оно не попадает под
не будет использоваться никаких filesystem и прочего
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
23.01.2022, 21:24  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
оно не попадает под
Ещё как попадает, максимум используется Сишный заголовок #include<sys\stat.h>
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
23.01.2022, 21:53
Цитата Сообщение от pgb Посмотреть сообщение
Сишный заголовок
Он не имеет отношения к языку C. С таким же успехом можно использовать windows.h
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
23.01.2022, 22:13  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
С таким же успехом можно использовать windows.h
С таким же успехом на под linux это не будет работать, а мне нужна кроссплатформенность тоже
0
 Аватар для YUEN HOIFEF
252 / 185 / 47
Регистрация: 31.01.2021
Сообщений: 934
24.01.2022, 01:58

pgb

Функция stat может определить файл это или директорий. По расширению не надо определять.
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
24.01.2022, 11:46  [ТС]
Информация по stat может кому пригодится https://ru.manpages.org/lstat/2
0
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
24.01.2022, 12:06
Цитата Сообщение от pgb Посмотреть сообщение
предусмотрев будущие модернизации
Цитата Сообщение от pgb Посмотреть сообщение
Я вот руководствуюсь именно таким принципом
Ты че, будущее видишь? Начерта ты тогда вообще в программирование пошел, если ты на своем даре можешь миллионы сделать, грамотного менеджера найди себе только.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
24.01.2022, 12:08
Цитата Сообщение от Nishen Посмотреть сообщение
если ты на своем даре можешь миллионы сделать
Старец pgb. Новый сериал на ТВ3.
0
24.01.2022, 12:28

Не по теме:

Может его с ЕПЗ свести? Тот будет генерировать гениальные идеи, это будет их гениально реализовывать. Идеальный симбиоз, который потрясёт мир IT (исли они за "хлеб" не подерутся).

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.01.2022, 12:28

Посоветуйте хорошую portable-программу для работы с жестким диском
Посоветуйте хорошую программу portable для работы с разделами жесткого диска для windows 10. Или может какие-то стандартные утилиты есть...

Для каждой кнопки свой класс
Есть 10 кнопок(картинки). Нужно по клику изменить класс стороннего элемента('.img-thumbnail') в соответствии с нажатой кнопкой. В моем коде...

В свой div свой текст, класс один и тот же
div class=&quot;head&quot;&gt;ОДИН&lt;/div&gt; &lt;div class=&quot;body&quot;&gt;&lt;div class=&quot;cl&quot;&gt;&lt;/div&gt; &lt;script&gt; $(document).ready(function() { //Если клик...

Класс: создать класс Fraction для работы с дробными числами
Необходимо создать класс Fraction для работы с дробными числами. Число должно быть представлено двумя полями: целая часть – длинное целое...

Класс: Создать класс Rational для работы с рациональными дробями.
Рациональная (несократимая) дробь представляется парой целых чисел (а, b), где а — числитель, b — знаменатель. Создать класс Rational для...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon | Pearson / New Riders . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru