Contents Up Previous Next

wxFileSystem

La bibliothèque wxHTML utilise un mécanisme desystèmes de fichiers virtuels similaire à celui utilisé dans Midnight Commander, Dos Navigator, FAR ou à peut près la majorité des gestionnaires de fichiers modernes. Il permet à l'utilisateur d'accéder à des données stockées dans des archives comme s'il s'agissait de fichiers ordinaires. Les fichiers générés "à la volée" qui n'existent qu'en mémoire sont également supportés.

Classes

Trois classes sont utilisées afin de fournir un mécanisme de systèmes de fichiers virtuels:

Emplacements

Emplacements (également connues comme noms de fichiers, ou adresses) sont construits d'après quatre parties:

Protocoles Combinés

L'emplacement de gauche précède le protocole dans une chaine URL. Il n'est pas utilisé par les protocoles globaux tels que HTTP, mais il devient utile Section non traduite:when nesting protocols - par exemple, vous voulez avoir accès à des fichiers dans une archive ZIP:

file:archives/cpp_doc.zip#zip:reference/fopen.htm#syntax

Dans cet exemple, le protocole est "zip", l'emplacement réel est "reference/fopen.htm", l'ancre est "syntax" et l'emplacement de gauche est "file:archives/cpp_doc.zip".

Il y a deux protocoles utilisés dans cet exemple : "zip" et "file".

Systèmes de fichiers inclus dans wxHTML

Les gestionnaires de fichiers virtuels suivants font partie de wxWidgets:

wxArchiveFSHandler Un gestionnaire pour les archives telles que zip et tar. Le fichier à inclure est <wx/fs_arc.h>. Exemples d'URLs : "archive.zip#zip:filename", "archive.tar.gz#gzip:#tar:filename".
wxFilterFSHandler Un gestionnaire pour les schémas de compression tel que gzip. Le fichier à inclure est <wx/fs_filter.h>. Les URLs sont par exemple de la forme: "document.ps.gz#gzip:".
wxInternetFSHandler Un gestionnaire pour accéder aux documents via les protocoles HTTP ou FTP. Le fichier à inclure est <wx/fs_inet.h>.
wxMemoryFSHandler Ce gestionnaire vouspermet d'accéder à des données stockées en mémoire (telles que des bitmaps) comme s'il s'agissait de fichier normaux. Voir la documentation wxMemoryFSHandle pour plus de détails. Le fichier à inclure est <wx/fs_mem.h>. Les URLs sont préfixées avec memory:, par exemple : "memory:myfile.htm"

De plus, wxFileSystem lui-même peut accéder aux fichiers locaux.

Initialiser les gestionnaires de systèmes de fichiers

Utilisez wxFileSystem::AddHandler pour initialiser un gestionnaire, par exemple :

#include <wx/fs_mem.h>

...

bool MyApp::OnInit()
{
    wxFileSystem::AddHandler(new wxMemoryFSHandler);
...
}