2009-08-25 2 views
9

Voglio programmare un file system virtuale in Windows con Python.modo più semplice per programmare un file system virtuale in Windows con Python

Cioè, un programma in Python la cui interfaccia è in realtà una "finestra di explorer". È possibile creare & manipolare oggetti simili a file, ma invece di essere creati nel disco rigido come file normali sono gestiti dal mio programma e, ad esempio, archiviati in remoto, o crittografati o compressi o con versioni, o qualsiasi cosa io possa fare con Python.

Qual è il modo più semplice per farlo?

+3

Prima di tutto. Fai una lista completa di ciò che vuoi ottenere. Quindi scegli il primo elemento in quella lista e se hai dei dubbi su quell'elemento specifico puoi chiedere qui una soluzione. Come è adesso questa domanda è troppo ampia. – OscarRyz

+0

Sono d'accordo con Oscar. Non sembra affatto che si stia costruendo un file system, ma piuttosto una finestra che si comporta come la finestra di explorer, ma che può leggere e scrivere su altri file system esistenti, come un sito FTP (in remoto) o un volume compresso o crittografato (funzionalità di file zip o librerie di crittografia). – Kibbee

+6

Ho scritto che sto costruendo (o voglio costruire) un file system ** virtuale ** – flybywire

risposta

8

Anche se non ancora abbastanza maturo (purtroppo non ho esperienza diretta con esso), pywinfuse sembra esattamente come quello che stai cercando.

1

Se si sta tentando di scrivere un file system virtuale (potrei fraintendervi), guarderei un formato di file contenitore. Il VHD è ben documentato con HDI e OSQ (incorporato). Ci sono fondamentalmente due cose che devi fare. Uno è necessario decidere su un formato di file/contenitore. Dopodiché è semplice come scrivere l'API per manipolare quel contenitore. Se desideri che venga manipolato su Internet, scegli un protocollo di trasporto, quindi scrivi un servizio (emulerebbe un driver del file system) che ascolta su una determinata porta e manipola questo contenitore usando l'API

2

Ha bisogno di essere nativo di Windows? Esiste almeno un protocollo che può essere sia esplorato da Windows Explorer, sia servito da librerie Python gratuite: FTP. Attacca il tuo programma dietro pyftpdlib e il gioco è fatto.

3

Dai un'occhiata a Dokan un filesystem in modalità utente per Windows. Sono disponibili i binding di Ruby, .NET (e Java di 3rd party) e non credo che sarà difficile scrivere anche i collegamenti Python.

1

Potresti essere interessato a PyFilesystem;

Uno strato di astrazione file system per Python

PyFilesystem è un livello di astrazione per file system. Allo stesso modo in cui gli oggetti simili a file di Python forniscono un modo comune per accedere ai file, PyFilesystem fornisce un modo comune per accedere a interi file system. È possibile scrivere codice indipendente dalla piattaforma per lavorare con i file locali, che funziona anche con qualsiasi filesystem supportato (zip, ftp, S3 ecc.).

Che la descrizione sulla homepage non fa pubblicità è che si può allora expose questa astrazione di nuovo come un file system, tra gli altri SFTP, FTP (anche se currently disfunct, probabilmente fixable) e dokan (dito), così come fuse.

+0

L'OP ha cercato l'opposto, credo - per un modo per esporre i suoi dati come un filesystem. –

+0

@ EugeneMayevski'EldoSCorp Questo è ciò che fanno i sottomoduli 'esporre 'di PyFilesystem - la mia risposta potrebbe probabilmente trarre beneficio da un po' di verbosità, la espanderò più avanti su –

+1

@ EugeneMayevski'EldoSCorp Ho aggiunto un altro testo - Non mi rendevo conto che la homepage non lo fa Ho menzionato le funzioni di expose, dato che ho trovato 'PyFilesystem' cercando esplicitamente qualcosa con Python e Dokan ... –