Russian Qt Forum
Ноябрь 25, 2024, 10:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как создать виртуальный файл?  (Прочитано 6518 раз)
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« : Июль 14, 2017, 12:03 »

Некоторые программы (например, САПР), хранят свои данные в виде файлов, да ещё и блокируют доступ к ним, когда файл в программе открыт.

Конечная цель: чтобы данные хранились в БД и работа шла именно с БД (можно через промежуточное приложение), а не с файлами.

Идея: сделать какую-то штуку, чтобы программа думала, что работает с файлом, а на деле это некий "тунель" к другой программе, которая уже работает с БД.

Как подобное может быть устроено?
Может нужно создать некую виртуальную ФС?

Программы считаем неизменяемыми.
Записан

Юра.
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Июль 14, 2017, 15:41 »

а зачем файлы хранить в бд? это может быть не оптимально https://wiki.postgresql.org/wiki/BinaryFilesInDB
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Июль 19, 2017, 10:59 »

а мне и не нужно хранить файлы в БД, я про это и не упоминал
Записан

Юра.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Июль 19, 2017, 11:22 »

а мне и не нужно хранить файлы в БД, я про это и не упоминал
Ну как же
Конечная цель: чтобы данные хранились в БД и работа шла именно с БД
Или это просто "для примера"? Ладно, ну с читающим все понятно - наследоваться от QIODevice и все дела. Но дальше все зависит от того какой "туннель" планируете, где и что хранить и.т.д.  Здесь все "по задаче", напр если данные в др приложении то может шаред мемори или хваленые пайпы
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Июль 20, 2017, 03:29 »

Не кроссплатформенно: FUSE. Написать всё придётся самому, то есть весь промежуточный интерфейс БД <-> файлы
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Июль 20, 2017, 14:14 »

а мне и не нужно хранить файлы в БД, я про это и не упоминал
Ну как же
Конечная цель: чтобы данные хранились в БД и работа шла именно с БД
Или это просто "для примера"?
Выделил жирным, нет там фразы "хранить файлы в БД"

... какой "туннель" планируете ...
ни какой не планирую, а именно спрашиваю:
Как подобное может быть устроено?
Может нужно создать некую виртуальную ФС?
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Июль 20, 2017, 14:20 »

Не кроссплатформенно: FUSE. Написать всё придётся самому, то есть весь промежуточный интерфейс БД <-> файлы
Алекс, вот это уже что-то близкое, но винда (никуда от неё не денешься) на первом месте.

Я как-то сталкивался с Компас 3D, ломаным, он был сделан кем-то и как-то на основе VMWare - запускается один единственный екзкшник, из запущенного открываешь нужные файлы.
НО
интересно, что из этого Компаса файловая система выглядит иначе (в диалогах "Открыть/сохранить"), в ней ещё какой-то диск видно, в котором папка "Program Files", а в ней "Компас", хотя на деле этого диска в системе нет.

Это воспоминание меня и натолкнуло на мысль, что можно каким-то образом обмануть программу, чтобы она думала, что работает с файлом.
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 22.