Differenze tra le versioni di "Conoscere il mime-type di un file mediante le sole risorse di Gambas"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
+ | Il "''mime-type''" di un file consente di identificare il ''tipo'' del file. | ||
+ | |||
Per conoscere il "''mime-type''" di un determinato file con le sole risorse native di Gambas, si potranno utilizzare almeno due modalità. | Per conoscere il "''mime-type''" di un determinato file con le sole risorse native di Gambas, si potranno utilizzare almeno due modalità. | ||
Versione attuale delle 09:36, 1 ott 2023
Il "mime-type" di un file consente di identificare il tipo del file.
Per conoscere il "mime-type" di un determinato file con le sole risorse native di Gambas, si potranno utilizzare almeno due modalità.
Uso la Proprietà ".Type" del Metodo ".FromFile()" della Classe DesktopMime
In questo caso è necessario attivare anche il Componente gb.desktop.
Mostriamo un esempio pratico:
Public Sub Form_Open() Print DesktopMime.FromFile("/percorso/del/file").Type End
Con apposito algoritmo
Altresì si potrà cercare la corrispondenza fra l'estensione di questo file con il mime-type riportata nell'ampia lista contenuta rispettivamente nei file di sistema "/usr/share/mime/globs " e "/etc/mime.types ".
Potremo adottare il seguente codice:
Public Sub Main() Dim percorsofile, ris As String ' Specifica il file di cui cercare il corrispondente "mime-type": percorsofile = "/percorso/del/file" ris = ControllaGlobs(percorsofile) If IsNull(ris) Then ris = ControllaEtc(percorsofile) Endif If IsNull(ris) Then ris = "L'estensione del file non è presente nel database dei 'mime-type' !" Print ris End Private Function ControllaGlobs(perc As String) As String Dim gl, est, rit As String Dim ss As String[] Dim c As Short ' Dapprima verifica il mime-type nel file "/usr/share/mime/globs": gl = File.Load("/usr/share/mime/globs") est = ":*." & LCase(File.Ext(perc)) ' Verifica se l'estensione del file corrente sia comunque presente nel file "/usr/share/mime/globs": If InStr(gl, est) Then ' Individua ogni riga componente il contenuto testuale del file "/usr/share/mime/globs": ss = Split(gl, "\n") For c = 0 To ss.Max ' Verifica quale riga del file "globs" termina con i caratteri della stringa contenuta nella variabile "est": If ss[c] Ends est Then ' Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione: rit = Scan(ss[c], "*:*")[0] Break Endif Next Endif Return rit End Private Function ControllaEtc(perc As String) As String Dim et, est, rit As String Dim ss As String[] Dim c As Short ' Quindi verifica il mime-type nel file "/etc/mime.types": et = File.Load("/etc/mime.types") et = Replace(et, Chr(&09), Chr(&20)) est = LCase(File.Ext(perc)) ' Verifica se l'estensione del file corrente sia comunque presente nel file "/etc/mime.types": If InStr(et, est) Then ' Individua ogni riga componente il contenuto testuale del file "/etc/mime.types": ss = Split(et, "\n") For c = 0 To ss.Max ' Verifica quale riga del file "mime.types" possiede i caratteri della stringa, contenuta nella variabile "est", anticipati da almeno uno spazio: If ss[c] Like "* " & est & "*" Then ' Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione: rit = Scan(ss[c], "* *")[0] Break Endif Next Endif Return rit End