Здравствуйте, Pzz, Вы писали:
Pzz>А не проще ли эти файлы просто вывалить во временную директорию? Диски нонече быстрые и дешевые, так что если картинок там не терабайт, это может оказаться вполне годным вариантом...
И потом их синхронизировать в обе стороны? (Изменения в файлах отражать в данных приложения, изменения в данных приложения отражать в файлах). Мне кажется, это плохой путь.
Здравствуйте, m2user, Вы писали:
A>>Для этого есть какие-то стандартные инструменты? Куда копать? Желательно, мультиплатформенно, но винда нужна в первую очередь.
M>Как вариант — запускать локальный ftp-сервер. Windows Explorer хорошо умеет с ftp работать.
А приложения? )) Есть, например, MPC-HC. Который делает очень специфический автор. Я его просил закрепить вывод оставшегося времени на экран (сам вывод уже был), а он мне ответил: купи себе часы. Могу представить, что он посоветует, если его попросить поддержать работу с видеороликами по FTP. Между тем, программа популярная, у дохрениллиона юзеров установлена.
M>Потестил ещё: при открытии файла через winexplorer на редактирование он копируется с ftp во временные файлы пользователя.
Я ещё не знаю, надо ли давать редактирование файла, но на всякий случай хотелось бы.
Здравствуйте, Qulac, Вы писали:
A>>Кто-нибудь делал такое?
A>>Есть данные в моём приложении (допустим, картинки). И есть много чужих приложений, которые работают с файлами-картинками (скринсейвер-фотоальбом, менеджер обоев и т.п.). И, получается, чтобы подать им данные на вход, нужно изобразить папку с файлами.
A>>Для этого есть какие-то стандартные инструменты? Куда копать? Желательно, мул ьтиплатформенно, но винда нужна в первую очередь.
Q>В paint image можно скопипастить если что.
Это совет по выгрузке данных в файлы, как выше ("А не проще ли эти файлы просто вывалить во временную директорию?"), но только без автоматизации, или я не понял какую-то изюминку?
Здравствуйте, Pzz, Вы писали:
Pzz>В линухе это легко и непринужденно делается с помощью fuse.
Pzz>Вроде как есть порт под венду (https://github.com/winfsp/winfsp), х.з., насколько работоспособный.
Мне кажется, FUSE это единственное вменяемое решение по вопросу топикстартера. Там ещё упомянули https://en.wikipedia.org/wiki/Installable_File_System, но это хардкор тот ещё — хоть и является официальным и правильным для ОС Windows.
A>А приложения? )) Есть, например, MPC-HC. Который делает очень специфический автор. Я его просил закрепить вывод оставшегося времени на экран (сам вывод уже был), а он мне ответил: купи себе часы. Могу представить, что он посоветует, если его попросить поддержать работу с видеороликами по FTP. Между тем, программа популярная, у дохрениллиона юзеров установлена.
Если приложение (вернее пользователь приложения) работает с файлом на FTP через диалог winexplorer, то приложению про ftp ничего знать не нужно. Файл автоматом скопируется во временные для чтения и редактирования.
При сохранении (если пользователь выбрал сохранять на ftp) — загрузится обратно (внутри этот механизи работает через internet explorer).
Если у тебя работа с файлами может происходить вообще без win exporer (т.е. должна быть возможность вручную прописать путь), то это сложнее.
Можно посмотреть в сторону webdav (http), который можно монтировать как сетевой диск, в отличие от ftp.
Вопрос в том, сколько времени/денег ты собираешься в это вложить. Можно ведь и коммерческую лицензию на winfsp, который предлагали ранее, купить за $2400/6000, можно погрузится в собственную реализацию installable file system.
А может быть проще обучить твое приложение подхватывать файлы из указанной директории.
P.S. subst просто добавляет DosDeviceName как ссылку на указанный путь.
Здравствуйте, m2user, Вы писали:
A>>А приложения? )) Есть, например, MPC-HC. Который делает очень специфический автор. Я его просил закрепить вывод оставшегося времени на экран (сам вывод уже был), а он мне ответил: купи себе часы. Могу представить, что он посоветует, если его попросить поддержать работу с видеороликами по FTP. Между тем, программа популярная, у дохрениллиона юзеров установлена.
M>Если приложение (вернее пользователь приложения) работает с файлом на FTP через диалог winexplorer, то приложению про ftp ничего знать не нужно. Файл автоматом скопируется во временные для чтения и редактирования. M>При сохранении (если пользователь выбрал сохранять на ftp) — загрузится обратно (внутри этот механизи работает через internet explorer).
M>Если у тебя работа с файлами может происходить вообще без win exporer (т.е. должна быть возможность вручную прописать путь), то это сложнее. M>Можно посмотреть в сторону webdav (http), который можно монтировать как сетевой диск, в отличие от ftp.
Как-то это всё выглядит ненадёжно. Кроме того, я помню, как работал с webdav'ом (давно, правда) — постоянно какие-то грабли, и вдобавок тормозило.
Здравствуйте, flаt, Вы писали:
F>Мне кажется, FUSE это единственное вменяемое решение по вопросу топикстартера. Там ещё упомянули https://en.wikipedia.org/wiki/Installable_File_System, но это хардкор тот ещё — хоть и является официальным и правильным для ОС Windows.
Ну в линухе народ тоже, когда надо богатый внутренний мир программы представить в виде файловой системы, предпочитает использовать fuse, а не пилить полноценные файловые системы (хотя в линухе это в разы проще, чем в венде, и если чего непонятно, есть, где подглядеть).
Разница в том, что в линухе fuse — фактически, часть ОС. Чего не скажешь про венду.
Здравствуйте, Alekzander, Вы писали:
A>получается, чтобы подать им данные на вход, нужно изобразить папку с файлами.
Нет, не нужно. Более того — это последнее, что должно приходить в голову.
Вообще, простейший проверочный вопрос для оценки полезности любой идеи: "если так начнут делать все, как это будет восприниматься с моей стороны?".
A>Для этого есть какие-то стандартные инструменты?
Разумеется — функции типа "send", "share" и т.п. В винде это DDE, Drag-and-drop и подобное.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Вообще, простейший проверочный вопрос для оценки полезности любой идеи: "если так начнут делать все, как это будет восприниматься с моей стороны?".
Если бы каждая программа давала файловый view на свои данные, а не пыталась как последняя падла скрыть их, делая себя с понтом незаменимой, я бы сказал, что попал в инженерный рай.
>Разумеется — функции типа "send", "share" и т.п. В винде это DDE, Drag-and-drop и подобное.
Ты задачу не понял. А я не объяснил. (Потому что для моего вопроса это неважно). Считай, что есть база, в ней БЛОБы, и эти БЛОБы надо уметь представить как файлы. Какой send, какой share, какой DDE.
Здравствуйте, Alekzander, Вы писали:
A>Если бы каждая программа давала файловый view на свои данные, а не пыталась как последняя падла скрыть их, делая себя с понтом незаменимой, я бы сказал, что попал в инженерный рай.
А если попытаетесь чуть лучше представить, то сразу поймете, что полезли бы на стенку, или вовсе вздернулись.
A>есть база, в ней БЛОБы, и эти БЛОБы надо уметь представить как файлы.
Обмен данными между программами существует десятки лет, последние лет тридцать — весьма разнообразный. То, что в целях такого обмена до сих пор не применяется эмуляция файлов, должно бы наводить на некие мысли.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Обмен данными между программами существует десятки лет, последние лет тридцать — весьма разнообразный. То, что в целях такого обмена до сих пор не применяется эмуляция файлов, должно бы наводить на некие мысли.
Очень жаль, если ты не знаешь таких программ, но при этом даёшь очень глобальные советы так не делать, потому что так, якобы, не делает никто.
Выше написали про WebDAV. Его как раз в таких целях и использовали. В одной мелкой и мягкой компании. Этой имплементацией на основе WebDAV я пользовался сам много лет, и это было лучше, чем совсем ничего (то есть, ничего, кроме тупой выгрузки/загрузки, которую ты имеешь в виду под send/share), но хуже, чем если бы было сделано по уму. А как такие вещи делаются по уму — об этом и был мой вопрос.
Здравствуйте, Alekzander, Вы писали:
A>Очень жаль, если ты не знаешь таких программ
Если их знаете Вы — перечислите навскидку хотя бы штук пять.
A>при этом даёшь очень глобальные советы так не делать
Такие советы Вам даст любой мало-мальски компетентный в системном программировании человек, который исходит из того, чтоб не создавать уродливых костылей без крайней нужды.
A>потому что так, якобы, не делает никто.
Из вменяемых — точно никто. Если кто и сделал, то явно было похоже на Nero Burning ROM.
A>Выше написали про WebDAV. Его как раз в таких целях и использовали.
Но не внутри конкретной системы, а между ними. Это ключевое различие.
A>как такие вещи делаются по уму — об этом и был мой вопрос.
По уму такие вещи делаются в виде общесистемных служб, когда любое, заранее неизвестное приложение, пользуясь готовым API, может выставить какие-то ресурсы в заранее известных форматах. Но именно это и реализовано давным-давно в популярных системах, и любое приложение, заинтересованное в использовании чужих данных, использует соответствущие API. Вы пока не привели доводов против них, поэтому идея непременно эмулировать файлы выглядит, как прихоть, а не рациональный метод.
А если каждое приложение, которому есть, что передать другим, начнет эмулировать файлы, в системе начнутся трэш и содомия. Вот именно поэтом и не делают.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Если их знаете Вы — перечислите навскидку хотя бы штук пять.
Это типовой паттерн в классе софта, называемом СКД (системы корпоративного документооборота). Рассказывать тут, с какими из них я работаю, как и другие детали личной жизни, я воздержусь. Приведу только один пример, зато уж сразу с картинками:
Там тебе и про старый способ через WebDAV, и про новый способ через OneDrive.
Расскажи им, что они все дураки. Особенно, юзерам. Которые — видишь? Задают вопросы, как им получить проекцию БЛОБов на файловую систему. Тоже, дебилы, наверно. Раз хотят такие вещи.
P.S. Чтобы ты понимал:
Since we migrated our documentation to M365 in 2022 we do not have access (or don't know how to do it) to sites and document libraries from Microsoft Explorer on Windows 10 and 11
Здравствуйте, Alekzander, Вы писали:
A>Если бы каждая программа давала файловый view на свои данные, а не пыталась как последняя падла скрыть их, делая себя с понтом незаменимой, я бы сказал, что попал в инженерный рай.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Такие советы Вам даст любой мало-мальски компетентный в системном программировании человек, который исходит из того, чтоб не создавать уродливых костылей без крайней нужды.
Денис Ричи, Кен Томпсон, Роб Пайк — достаточно компетентнте в системном программировании граждане, или недостаточно?
Идея "всё есть файловая система" является основополагающей в Plan9...
Здравствуйте, Pzz, Вы писали:
A>>Если бы каждая программа давала файловый view на свои данные, а не пыталась как последняя падла скрыть их, делая себя с понтом незаменимой, я бы сказал, что попал в инженерный рай. Pzz>Этот инженерный рай называется Plan 9 from Bell Labs
Я бы предпочёл более другой рай, но на фоне нынешней культуры этот, конечно, достаточно райский.
Здравствуйте, Alekzander, Вы писали:
Pzz>>Этот инженерный рай называется Plan 9 from Bell Labs
A>Я бы предпочёл более другой рай, но на фоне нынешней культуры этот, конечно, достаточно райский.
Plan 9, конечно, никто не использует в чистом виде (кроме Роба Пайка), но его "растаскали по цитатам" по другим ОС.
Fuse — явное и очевидное влияние. Как и union mount, bind mount, /proc file system, linux namespaces, ...
Здравствуйте, Евгений Музыченко, Вы писали:
Pzz>>Идея "всё есть файловая система" является основополагающей в Plan9...
ЕМ>И где там API для произвольного процесса, чтоб он мог выставить что угодно под видом файлов?
Я не знаю технических деталей, но там довольно идеоматическое дело, когда процесс реализует свой интерфейс в виде файловой системы.
Причем, что характерно, програмный интерфейс GUI — это файловая система. Соответственно, подмонтировав её куда надо, получаешь доступ к экрану. Даже и удалённо по сети.
Ну а права доступа выражаются в терминах права смонтировать доступаемое в свой namespace.
Здравствуйте, Pzz, Вы писали:
A>>Я бы предпочёл более другой рай, но на фоне нынешней культуры этот, конечно, достаточно райский.
Pzz>Plan 9, конечно, никто не использует в чистом виде (кроме Роба Пайка), но его "растаскали по цитатам" по другим ОС.
Я не об этом. Мой рай это структурированные хранилища с метаданными. Очень обидно смотреть на СУБД, которые технически (но не функционально) его воплощают. Близок локоть, а не укусишь. Ну хрен ли толку, что в Андроиде половина всего (? — точно не знаю) хранится в sqlite, если менеджер контактов через три звезды колено синхронизируется через гуглосервер, и нельзя его смапить через GUI как источник данных для тасклистов.