Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 5.00
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
#1

Простая файловая система - C++

11.01.2012, 20:14. Просмотров 3294. Ответов 22
Метки нет (Все метки)

Доброго времени суток!
Уважаемые профессионалы, помогите пожалуйста. Необходимо написать простенькую файловую системы, способную выполнять самые основные функции.
принцип должен быть такой..
что при запуске, создаётся или открывается уже созданный файл, который Windows начинает определять как носитель. тоесть в моём компьютере должен появиться новый диск.
не важно, как он будет определять, хоть как флешка, хоть обычный жестяк.
и можно будет открыть его, записывать файлы, читать, удалять и т.д.
помогите пожалуйста, чем сможете..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2012, 20:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простая файловая система (C++):

Файловая система - C++
Как получить доступ к файлам на жестких дисках?

Файловая система FAT - C++
Здравствуйте уважаемые форумчане. у меня задача: Написать программу, что использует информацию в таблице FAT и распечатывает список файлов...

Файловая система, дата и время - C++
Составить программу по работе с файловой системой, которая выводит в центре экрана системную дату и время, а также сообщения: “доброе...

Как смонтирована файловая система? - C++
Здравствуйте. Подскажите,пожалуйста, как в Solaris'e узнать как смонтирована файловая система? Я знаю,что можно использовать mount без...

Файловая система C++ некорректно себя ведет - C++
Файловая система C++ некорректно себя ведет. Считываю .bmp-файл в структуру (не во всю сразу), при выводе значений переменных из структуры...

Простая графическая система - C++
Здарова! Решаю задачку: Реализуйте простую графическую систему, используя доступные на вашем компьютере графические средства (если их...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 12:31 #2
Нда... можно, например, помочь вам определиться с тем, чего вы на самом деле хотите сваять.
Цитата Сообщение от Wiki
Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

С точки зрения операционной системы (ОС), весь диск представляет собой набор кластеров (как правило, размером 512 байт и больше)[1]. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
0
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
12.01.2012, 15:05  [ТС] #3
Цитата Сообщение от BRcr Посмотреть сообщение
Нда... можно, например, помочь вам определиться с тем, чего вы на самом деле хотите сваять.
спасибо, я знаю что такое файловая система..
и знаю что это можно сделать очень даже легко..так сказал препод, но дело в том, что я с языком C/C++ на очень большое ВЫ..по этому обращаюсь за помощью
хотябы какие то подсказки..советы, коды.. хоть что то, как подобное можно организовать
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 15:16 #4
Если вы хотите разработать систему правил, определяющих физическое хранение информации на накопителе и логику работы с ней, то это одно. Карандаш, салфетка и вперед по стопам незабвенных исследователей

Если к этой системе надо еще и драйвера написать, то это уже дело совсем другое, никак не для начинающего в программировании, уж извините
0
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
12.01.2012, 15:25  [ТС] #5
Цитата Сообщение от BRcr Посмотреть сообщение
Если вы хотите разработать систему правил, определяющих физическое хранение информации на накопителе и логику работы с ней, то это одно. Карандаш, салфетка и вперед по стопам незабвенных исследователей

Если к этой системе надо еще и драйвера написать, то это уже дело совсем другое, никак не для начинающего в программировании, уж извините
однако этого требуется от нас... и мы там далеко не профи..
делаем вывод..что есть некий способ, с помощью которого можно сделать это
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 15:50 #6
Цитата Сообщение от bupal Посмотреть сообщение
делаем вывод..что есть некий способ, с помощью которого можно сделать это
Совершенно верно и неоспоримо! Хотя и бесполезно в сложившейся ситуации.
Я бы осторожно сделал вывод, что вы неправильно поняли свое задание.
0
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
12.01.2012, 16:13  [ТС] #7
Цитата Сообщение от BRcr Посмотреть сообщение
Совершенно верно и неоспоримо! Хотя и бесполезно в сложившейся ситуации.
Я бы осторожно сделал вывод, что вы неправильно поняли свое задание.
а какой вариант вы бы предложили мне?...
0
easybudda
Модератор
Эксперт CЭксперт С++
9629 / 5577 / 947
Регистрация: 25.07.2009
Сообщений: 10,712
12.01.2012, 16:27 #8
Цитата Сообщение от BRcr Посмотреть сообщение
Если вы хотите разработать систему правил, определяющих физическое хранение информации на накопителе и логику работы с ней, то это одно. Карандаш, салфетка и вперед по стопам незабвенных исследователей
Если к этой системе надо еще и драйвера написать, то это уже дело совсем другое, никак не для начинающего в программировании, уж извините
ППКС


Цитата Сообщение от bupal Посмотреть сообщение
и знаю что это можно сделать очень даже легко
Отличный подход! Не знаю, как, но знаю, что легко.

Цитата Сообщение от bupal Посмотреть сообщение
однако этого требуется от нас... и мы там далеко не профи..
делаем вывод..что есть некий способ, с помощью которого можно сделать это
Есть такой способ - лекции не прогуливать.

А так даже не представляю, чем Вам помогут в разделе для начинающих. Почитайте описание FAT32 для начала, может натолкнёт на какие-то идеи...
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 16:50 #9
Цитата Сообщение от bupal Посмотреть сообщение
а какой вариант вы бы предложили мне?...
Воспользоваться услугами фрилансеров? Правда, потом придется рассказывать преподу, что и как вы сделали; не самый приятный будет момент

Или поднатореть в системном программировании, попутно осваивая язык. Простым вариантом не назовешь, но это будет честно. Да и не так уж много на это потребуется времени при должном подходе... не день и не два, конечно же, но за недельку или месяц-другой управиться можно, все зависит от вас - от уровней ваших стараний да познаний.
1
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
12.01.2012, 18:19  [ТС] #10
Цитата Сообщение от easybudda Посмотреть сообщение
Есть такой способ - лекции не прогуливать.
Отличный совет..но он был бы актуален, если бы лекции были))..
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,468
12.01.2012, 20:18 #11
Можно вмешаться?
На месте вашего препода я б не стал такие эксперименты предлагать живому новичку на живом компутере.
Я бы задачу поставил так. Заводите здоровенный файл на 1Гб или сколь душа пожелает. И организуете на нем файловую структуру. Дерево каталогов строите. Растите его во все стороны. Удаляете там или копируете-переименовываете. Менеджер файлов создаете типа незабвенного NC или FAR, или в стиле проводника-Винда. И все не вылезая за пределы этого файла.
ИМХО, тут бы и польза для ТС была, и компутеры целы, да и работа хорошая серьезная.
А если уж совсем круто хочется, так берите еще один файлик на 5 гигов, и пусть ваша файловая система считает его диском D: или /dev44 - и вперед!
А уж когда тут кое-что начнется вырисовываться и получаться - вот вам еще немного железку изучить - и вы классный системный программист!

Добавлено через 10 минут
А чтоб обстановку максимально приблизить к боевой, считайте, что файлик ваш разбит на "кластеры", скажем по 512 байт, и читать-писать можно только "кластерами".
Подумайте, что делать, когда внутренние "файлы" (вашей Ф-системы) вдруг увеличиваются, или наоборот, уменьшаются, место освобождается - не пропадать же ему?
С Богом!
2
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
12.01.2012, 20:27  [ТС] #12
во..вот это вообще отличный совет))большое спасибо
можете рассказать, каким образом заставить работать как бы с кластерами..
расскажите подробнее принцип ну или код))..если есть возможность

и ещё такой вопрос.. как можно сказать винде, чтоб она думала вот этот файл является диском..
по какому принципу это вообще делается?..
мб драйвер нужно написать?...потому что я припоминаю, что препод как то намекал на это..
что типа вот эта задача - нужно будет написать драйвер...свою файловую систему
и чтоб был файл, который винда должна определить как диск..
а все действия, которые обычно выполняются (записать, стереть, переименовать и т.д.) должны быть прописаны (тобишь способы выполнения) у меня в ФС
0
BRcr
12.01.2012, 20:29
  #13

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Подумайте, что делать, когда внутренние "файлы" (вашей Ф-системы) вдруг увеличиваются, или наоборот, уменьшаются, место освобождается - не пропадать же ему?
Да, дефрагментация - это весело
Никогда не понимал, почему на виндах аж вплоть до ХР так все туго было с дефрагментацией... смех, да и только.

2
bupal
25 / 25 / 3
Регистрация: 30.03.2010
Сообщений: 357
Записей в блоге: 1
12.01.2012, 20:36  [ТС] #14
Цитата Сообщение от BRcr Посмотреть сообщение

Не по теме:


Да, дефрагментация - это весело
Никогда не понимал, почему на виндах аж вплоть до ХР так все туго было с дефрагментацией... смех, да и только.

кстати да..дефрагментация в ФС..
она должна быть только тогда, когда пользователь сам этого захочет и выберет соответствующий пункт в меню
или она должна выполняться автоматически?
1
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 20:43 #15
Цитата Сообщение от bupal Посмотреть сообщение
она должна быть только тогда, когда пользователь сам этого захочет и выберет соответствующий пункт в меню
или она должна выполняться автоматически?
Это религиозный вопрос, уходящий корнями во времена создания первых жестких Реализовано должно быть и так и сяк, если по хорошему...
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2012, 20:43
Привет! Вот еще темы с ответами:

Файловая система на C++ - C++
Привет всем))) Ребят, у меня стоит задача - написать свою файловую систему на С++)) Но вот с чего начать, что делать я вообще не знаю))...

Файловая оболочка - C++
Уважаемые товарищи,прошу помочь мне реализовать такой проект на языке C: Файловая оболочка. * Навигация по дереву...

Файловая сортировка (не обычно) - C++
привет всем, нужно отсортировать по возрастанию данную конструкцию. В файле так: 23 54 87 95 37 24 48 30 27 89 27 12 ifstream...

[disign] файловая маска, regex - C++
Всем привет. Как правильно конвертировать файловые маски в регулярки? С обычными масками все просто: "*.txt" =>...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.01.2012, 20:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru