Программа "Виртуальный диск" на C++
От: Аноним  
Дата: 22.06.07 06:20
Оценка:
Добрый день!
Стоит задача написать на C++ программу, создающую виртуальный диск. Название каталогов и файлов она должна брать из базы данных (т.е. в базе храниться дерево файлов с названиями файлов/папок и путями к реальным файлам на диске). Честно говоря, пока совсем не понимаю как создавать этот виртуальный диск и записывать на него "мнимые" файлы. Может кто-нибудь объяснит данный механизм или посоветует литературу или статьи в Интернете. Заранее благодарен.

22.06.07 18:22: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Программа "Виртуальный диск" на C++
От: jazzer Россия Skype: enerjazzer
Дата: 22.06.07 06:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Стоит задача написать на C++ программу, создающую виртуальный диск. Название каталогов и файлов она должна брать из базы данных (т.е. в базе храниться дерево файлов с названиями файлов/папок и путями к реальным файлам на диске). Честно говоря, пока совсем не понимаю как создавать этот виртуальный диск и записывать на него "мнимые" файлы. Может кто-нибудь объяснит данный механизм или посоветует литературу или статьи в Интернете. Заранее благодарен.

Погугли NTFS reparse points (если речь о винде, естественно)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Программа "Виртуальный диск" на C++
От: Кодт Россия  
Дата: 22.06.07 08:18
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Стоит задача написать на C++ программу, создающую виртуальный диск.


Ключевое слово здесь — не "на С++", а "для ОС _____" (увы, это ключевое слово оказалось пропущенным).
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: Программа "Виртуальный диск" на C++
От: Аноним  
Дата: 22.06.07 12:54
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, <Аноним>, Вы писали:


А>>Стоит задача написать на C++ программу, создающую виртуальный диск.


К>Ключевое слово здесь — не "на С++", а "для ОС _____" (увы, это ключевое слово оказалось пропущенным).


Как сказано в задании, должно работать на WinXP, и было бы неплохо, чтобы работало еще на Win98, ME и 2000...
Re: Программа "Виртуальный диск" на C++
От: SpLove Россия  
Дата: 22.06.07 13:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Стоит задача написать на C++ программу, создающую виртуальный диск. Название каталогов и файлов она должна брать из базы данных (т.е. в базе храниться дерево файлов с названиями файлов/папок и путями к реальным файлам на диске). Честно говоря, пока совсем не понимаю как создавать этот виртуальный диск и записывать на него "мнимые" файлы. Может кто-нибудь объяснит данный механизм или посоветует литературу или статьи в Интернете. Заранее благодарен.
Думаю нужно начать так Start->Run->cmd->subst /?
Re[2]: Программа "Виртуальный диск" на C++
От: Аноним  
Дата: 22.06.07 14:06
Оценка:
SL> Думаю нужно начать так Start->Run->cmd->subst /?
И где там база данных?
Re: Программа "Виртуальный диск" на C++
От: Аноним  
Дата: 22.06.07 14:19
Оценка:
Не помню где скачал (судя по копирайтам на сайте Microsoft), должно помочь:
здесь
Re: Программа "Виртуальный диск" на C++
От: Cyberax Марс  
Дата: 22.06.07 14:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Стоит задача написать на C++ программу, создающую виртуальный диск. Название каталогов и файлов она должна брать из базы данных (т.е. в базе храниться дерево файлов с названиями файлов/папок и путями к реальным файлам на диске). Честно говоря, пока совсем не понимаю как создавать этот виртуальный диск и записывать на него "мнимые" файлы. Может кто-нибудь объяснит данный механизм или посоветует литературу или статьи в Интернете. Заранее благодарен.

Задача достаточно сложная — нужно реализовать драйвер файловой системы.

В Linux/BSD/MacOS есть FUSE (http://fuse.sourceforge.net/) который позволяет реализовывать драйверы в виде userspace-приложений на С/C++/Python.

Для Windows такого нет (я начал писать аналог FUSE зимой, но до сих пор времени дальше "hello, world" продвинуться нет). Тебе потребуется WDK (http://www.microsoft.com/whdc/devtools/WDK/AboutWDK.mspx) — в нем есть примеры файловых систем. Еще ОЧЕНЬ поможет книга http://www.amazon.com/Windows-System-Internals-Classic-Reprints/dp/0976717514 — в ней в примерах есть скелет драйвера SampleFSD с кучей комментариев.

Да, и это вообще-то в соответствующий форум нужно было спрашивать.
Sapienti sat!
Re[2]: Программа "Виртуальный диск" на C++
От: Danchik Украина  
Дата: 22.06.07 14:47
Оценка:
Здравствуйте, Cyberax, Вы писали:

[Skip]

Я б еще глянул на RAM Disk, ramdrive
Re[3]: Программа "Виртуальный диск" на C++
От: Cyberax Марс  
Дата: 22.06.07 14:57
Оценка:
Здравствуйте, Danchik, Вы писали:

D>[Skip]

D>Я б еще глянул на RAM Disk, ramdrive
Это просто блоковое устройство, хранящее данные в памяти. Оно форматируется в обычный FAT/NTFS и ничем здесь не поможет.
Sapienti sat!
Re: Программа "Виртуальный диск" на C++
От: Risk Server  
Дата: 22.06.07 15:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Стоит задача написать на C++ программу, создающую виртуальный диск. Название каталогов и файлов она должна брать из базы данных (т.е. в базе храниться дерево файлов с названиями файлов/папок и путями к реальным файлам на диске). Честно говоря, пока совсем не понимаю как создавать этот виртуальный диск и записывать на него "мнимые" файлы. Может кто-нибудь объяснит данный механизм или посоветует литературу или статьи в Интернете. Заранее благодарен.

Чем то мне это напоминает проект WinFS над которым целый микрософт бился-бился много лет, но так пока ничего и не родил.
Re[2]: Программа "Виртуальный диск" на C++
От: Cyberax Марс  
Дата: 22.06.07 16:30
Оценка:
Здравствуйте, Risk Server, Вы писали:

RS>Чем то мне это напоминает проект WinFS над которым целый микрософт бился-бился много лет, но так пока ничего и не родил.

Проект Анонима вполне реален. Например, в Линуксе я постоянно пользуюсь sshfs (http://en.wikipedia.org/wiki/SSHFS), работающий с удаленными FS через обычный SSH.

FUSE, однако...
Sapienti sat!
Re[2]: Программа "Виртуальный диск" на C++
От: Сергей Савостин Украина http://savostin.com
Дата: 22.06.07 18:09
Оценка:
Вот еще
ЗЫ. Аноним — это я...
Re: Программа "Виртуальный диск" на C++
От: Irokez  
Дата: 25.06.07 09:18
Оценка:
Возможно, как вариант Windows Namespace Shell Extention, правда
отображается в проводнике ну или можно засунуть в сетевое окружения,
тогда виден в тотал командере. Вроде где-то тут должны были быть статьи
на эту тему
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.