Самый простой способ программирования виртуальной файловой системы в Windows с Python - PullRequest
9 голосов
/ 25 августа 2009

Я хочу запрограммировать виртуальную файловую систему в Windows на Python.

То есть программа на Python, интерфейс которой на самом деле является «проводником окон». Вы можете создавать и манипулировать файловыми объектами, но вместо того, чтобы создавать их на жестком диске как обычные файлы, они управляются моей программой и, скажем, хранятся удаленно, либо зашифрованы, сжаты или версионированы, или все, что я могу сделать с Python.

Какой самый простой способ сделать это?

Ответы [ 5 ]

8 голосов
/ 25 августа 2009

Хотя, возможно, еще не совсем созрели (к сожалению, у меня нет опыта из первых рук), pywinfuse выглядит точно как то, что вы ищете.

3 голосов
/ 22 февраля 2011

Взгляните на Dokan Файловая система режима пользователя для Windows. Доступны привязки Ruby, .NET (и Java сторонних производителей), и я не думаю, что будет также сложно писать привязки python.

2 голосов
/ 25 августа 2009

Должен ли он быть родным для Windows? Существует по крайней мере один протокол, который может просматриваться как в проводнике Windows, так и обслуживаться бесплатными библиотеками Python: FTP. Прикрепите вашу программу к pyftpdlib, и все готово.

1 голос
/ 08 января 2016

Вас может заинтересовать PyFilesystem ;

Уровень абстракции файловой системы для Python

PyFilesystem - это уровень абстракции для файловых систем. Подобно тому, как файловые объекты Python предоставляют общий способ доступа к файлам, PyFilesystem обеспечивает общий способ доступа ко всем файловым системам. Вы можете написать независимый от платформы код для работы с локальными файлами, который также работает с любой из поддерживаемых файловых систем (zip, ftp, S3 и т. Д.).

Что описание на домашней странице не рекламирует, так это то, что вы можете выставить эту абстракцию снова в качестве файловой системы, в том числе SFTP, FTP (хотя в настоящее время не работает , вероятно, исправимо ) и докан ( dito ), а также предохранитель .

1 голос
/ 25 августа 2009

Если вы пытаетесь написать виртуальную файловую систему (я могу вас неправильно понять) - я бы посмотрел на формат файла контейнера. VHD хорошо документирован вместе с HDI и (встроенным) OSQ. Есть в основном две вещи, которые вам нужно сделать. Во-первых, вам нужно определиться с форматом файла / контейнера. После этого это так же просто, как написание API для управления этим контейнером. Если вы хотите, чтобы им манипулировали через Интернет, выберите транспортный протокол, а затем просто напишите сервис (будет эмулировать драйвер файловой системы), который прослушивает определенный порт и манипулирует этим контейнером с помощью вашего API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...