Conoscere il contenuto di una pen-drive mediante le sole risorse di Gambas
Da Gambas-it.org - Wikipedia.
Versione del 8 giu 2017 alle 16:52 di Vuott (Discussione | contributi)
Il contenuto di una pen-drive, inserita nella porta USB e montata dal sistema operativo, è visibile agevolmente nel percorso:
"/media" &/ User.Name &/ "nome_della_cartella_condivisa_della_pen-drive" [Nota 1]
Ciò significa che all'interno di questa cartella condivisa della pen-drive è possibile vedere e richiamare utilmente il suo contenuto (sub-cartelle e file).
Così, se ad esempio il nome della cartella condivisa della nostra pen-drive fosse "40BA-E18A", per vedere e gestire tutto ciò che è contenuto nella nostra pen-drive USB inserita, dovremo semplicemente aprire la predetta cartella condivisa e vedere il suo contenuto.
In Gambas possiamo scrivere un codice simile al seguente:
Public Sub Main() Dim mounts, s, tp As String Dim ss, dv As String[] ' Carica il file contenente tutti i dispositivi montati dal S.O.: mounts = File.Load("/proc/self/mounts") ' Il contenuto testuale del file caricato viene suddiviso in righe: ss = Split(mounts, "\n") Print "File device presenti:" For Each s In ss ' Vengono prese in considerazione solo le righe che iniziano per "/dev/": If s Begins "/dev/" Then ' Viene presa solo la parte che potenzialmente si riferisce al nome della cartella condivisa della nostra pen-drive: dv = Scan(s, "* * *") Print dv[0] & Chr(32) & dv[1] ' Individua e raccoglie la parte relativa al nome della cartella condivisa della nostra pen-drive: If InStr(dv[1], "-") Then Print "\nFile e cartelle presenti nel dispositivo '"; dv[1]; "':" For Each s In Dir(dv[1], Null, 0) Select Case Stat(dv[1] &/ s).Type Case gb.File tp = "File " Case gb.Directory tp = "Directory" Case gb.Device tp = "Device " Case gb.Pipe tp = "Pipe " Case gb.Socket tp = "Socket " Case gb.Link tp = "Link " End Select Print " "; tp, s Next Endif Endif Next End
Note
[1] Questo percorso è testato almeno per la distribuzione Linux Mint.