Differenze tra le versioni di "Conoscere il mime-type di un file mediante le funzioni esterne del API di libmagic"
Da Gambas-it.org - Wikipedia.
(5 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 2: | Riga 2: | ||
Sarà necessario avere installata nel proprio sistema e richiamare in Gambas la libreria (nella sua attuale versione): ''libmagic.so.1.0.0'' | Sarà necessario avere installata nel proprio sistema e richiamare in Gambas la libreria (nella sua attuale versione): ''libmagic.so.1.0.0'' | ||
− | |||
Mostriamo un semplice esempio: | Mostriamo un semplice esempio: | ||
Library "libmagic:1.0.0" | Library "libmagic:1.0.0" | ||
− | Private MAGIC_MIME_TYPE As Integer = &10 | + | Private <FONT Color=red>MAGIC_MIME_TYPE</font> As Integer = &10 |
− | |||
− | |||
<FONT Color=gray>' ''magic_t magic_open(int)'' | <FONT Color=gray>' ''magic_t magic_open(int)'' | ||
Riga 28: | Riga 25: | ||
− | + | Public Sub Main() | |
Dim magic As Pointer | Dim magic As Pointer | ||
Dim err As Integer | Dim err As Integer | ||
− | + | ||
− | + | magic = magic_open(<FONT Color=red>MAGIC_MIME_TYPE</font>) | |
− | + | If magic == 0 Then Error.Raise("Impossibile inizializzare la libreria 'magic' !") | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | err = magic_load(magic, Null) | |
+ | If err <> 0 Then | ||
+ | ChiudeMagic(magic) | ||
+ | Error.Raise("Impossibile caricare il database di 'magic' !") | ||
+ | Endif | ||
− | + | Print magic_file(magic, "<FONT Color=darkgreen>''/percorso/del/file''</font>") | |
+ | |||
+ | ChiudeMagic(magic) | ||
+ | |||
+ | End | ||
− | + | Private Procedure ChiudeMagic(mgc As Pointer) | |
− | + | magic_close(mgc) | |
− | + | End | |
− | |||
=Riferimenti= | =Riferimenti= | ||
− | |||
* http://linux.die.net/man/3/libmagic | * http://linux.die.net/man/3/libmagic |
Versione attuale delle 08:50, 16 set 2024
E' possibile conoscere il Mime-Type di un file mediante alcune risorse della libreria Libmagic.
Sarà necessario avere installata nel proprio sistema e richiamare in Gambas la libreria (nella sua attuale versione): libmagic.so.1.0.0
Mostriamo un semplice esempio:
Library "libmagic:1.0.0" Private MAGIC_MIME_TYPE As Integer = &10 ' magic_t magic_open(int) ' Creates a magic cookie pointer and returns it. Private Extern magic_open(mg As Integer) As Pointer ' int magic_load(magic_t, const char *) ' Loads the the colon separated list of database files passed in as file name. Private Extern magic_load(magic_t As Pointer, filename As String) As Integer ' const char *magic_file(magic_t, const char *) ' Returns a textual description of the contents of the file. Private Extern magic_file(magic_t As Pointer, filename As String) As String ' void magic_close(magic_t) ' Closes the magic database and deallocates any resources used. Private Extern magic_close(magic_t As Pointer) Public Sub Main() Dim magic As Pointer Dim err As Integer magic = magic_open(MAGIC_MIME_TYPE) If magic == 0 Then Error.Raise("Impossibile inizializzare la libreria 'magic' !") err = magic_load(magic, Null) If err <> 0 Then ChiudeMagic(magic) Error.Raise("Impossibile caricare il database di 'magic' !") Endif Print magic_file(magic, "/percorso/del/file") ChiudeMagic(magic) End Private Procedure ChiudeMagic(mgc As Pointer) magic_close(mgc) End