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:41 di Vuott (Discussione | contributi) (Creata pagina con "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_c...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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")
  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.