Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
-829 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 901
1

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

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

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

Что посоветуете? Может дадите ссылочку на подробную документацию для работы с диском и файлами в POSIX, для меня этот способ по моему более актуален.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2022, 10:26
Ответы с готовыми решениями:

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

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

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

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

32
Croessmah
23.01.2022, 18:05     Свой класс для работы с диском
  #21
0
-829 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 901
23.01.2022, 20:02  [ТС] 22
Вот честно я с радостью бы стал использовать готовое решение, если оно удобно в реализации, хорошо документировано с примерами и главное работало. В данном случае filesystem конечно по описанию и примерам очень не плох, я бы его использовал. Но он у меня не компилируется, другого компилятора нет, пробовал скачивать\устанавливать другие, с ними ещё больше проблем..

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

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

Как это сделать с учётом что не будет использоваться никаких filesystem и прочего?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
23.01.2022, 20:06 23
Цитата Сообщение от pgb Посмотреть сообщение
что не будет использоваться никаких filesystem и прочего?
Обратиться к Господу.
0
-829 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 901
23.01.2022, 20:31  [ТС] 24
Цитата Сообщение от Croessmah Посмотреть сообщение
Обратиться к Господу.
Вашими молитвами нашёл пример
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
23.01.2022, 21:09 25
pgb, оно не попадает под
не будет использоваться никаких filesystem и прочего
0
-829 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 901
23.01.2022, 21:24  [ТС] 26
Цитата Сообщение от Croessmah Посмотреть сообщение
оно не попадает под
Ещё как попадает, максимум используется Сишный заголовок #include<sys\stat.h>
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
23.01.2022, 21:53 27
Цитата Сообщение от pgb Посмотреть сообщение
Сишный заголовок
Он не имеет отношения к языку C. С таким же успехом можно использовать windows.h
0
-829 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 901
23.01.2022, 22:13  [ТС] 28
Цитата Сообщение от Croessmah Посмотреть сообщение
С таким же успехом можно использовать windows.h
С таким же успехом на под linux это не будет работать, а мне нужна кроссплатформенность тоже
0
250 / 184 / 46
Регистрация: 31.01.2021
Сообщений: 934
24.01.2022, 01:58 29

pgb

Функция stat может определить файл это или директорий. По расширению не надо определять.
0
-829 / 16 / 0
Регистрация: 22.09.2015
Сообщений: 901
24.01.2022, 11:46  [ТС] 30
Информация по stat может кому пригодится https://ru.manpages.org/lstat/2
0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
24.01.2022, 12:06 31
Цитата Сообщение от pgb Посмотреть сообщение
предусмотрев будущие модернизации
Цитата Сообщение от pgb Посмотреть сообщение
Я вот руководствуюсь именно таким принципом
Ты че, будущее видишь? Начерта ты тогда вообще в программирование пошел, если ты на своем даре можешь миллионы сделать, грамотного менеджера найди себе только.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
24.01.2022, 12:08 32
Цитата Сообщение от Nishen Посмотреть сообщение
если ты на своем даре можешь миллионы сделать
Старец pgb. Новый сериал на ТВ3.
0
zayats80888
24.01.2022, 12:28     Свой класс для работы с диском
  #33

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2022, 12:28

Для каждой кнопки свой класс
Есть 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; ...

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

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

Класс: создать класс Fraction для работы с дробными числами
Задание Вот, что у меня вышло. #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt;...

Создать класс Decimal (Класс для работы со знаковыми целыми десятичными числами
Создать класс Decimal (Класс для работы со знаковыми целыми десятичными числами, использует для...


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

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