Differenze tra le versioni di "Conoscere il contenuto di una pen-drive mediante le sole risorse di Gambas"

Da Gambas-it.org - Wikipedia.
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Il contenuto di una pen-drive, inserita nella porta USB e montata dal sistema operativo, è visibile agevolmente nel percorso:
 
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" <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
+
  "/media" &/ User.Name &/ "<FONT Color=gray>''nome_della_cartella_condivisa_della_pen-drive''</font>" <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
 
Ciò significa che all'interno di questa cartella condivisa della pen-drive è possibile vedere e richiamare utilmente il suo contenuto (sub-cartelle e file).
 
Ciò significa che all'interno di questa cartella condivisa della pen-drive è possibile vedere e richiamare utilmente il suo contenuto (sub-cartelle e file).
  
Riga 6: Riga 6:
  
 
In Gambas possiamo scrivere un codice simile al seguente:
 
In Gambas possiamo scrivere un codice simile al seguente:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
+
   Dim mounts, s, tp As String
+
   Dim penna, per, s, tp As String
   Dim ss, dv As String[]
+
 
+
<FONT Color=gray>' ''Imposta il nome della "Pen-Drive" montata dal S.O.:''</font>
  <FONT Color=gray>' ''Carica il file contenente tutti i dispositivi montati dal S.O.:''</font>
+
   penna = "<FONT Color=gray>'''''40BA-E18A'''''</font>"
  mounts = File.Load("/proc/self/mounts")
+
 +
  <FONT Color=gray>' ''Imposta il percorso completo della "Pen-Drive" montata dal S.O.:''</font>
 +
  per = "/media" &/ User.Name &/ penna
 
      
 
      
<FONT Color=gray>' ''Il contenuto testuale del file caricato viene suddiviso in righe:''</font>
+
  Print "\nFile e cartelle principali presenti nel dispositivo '"; per; "'\n"
  ss = Split(mounts, "\n")
+
 
+
  For Each s In Dir(per, Null, 0)
  Print "File device presenti:"
+
    Select Case Stat(per &/ s).Type
 
+
      Case gb.File
  For Each s In ss
+
        tp = "File    "
<FONT Color=gray>' ''Vengono prese in considerazione solo le righe che iniziano per "/dev/":''</font>
+
      Case gb.Directory
    If s Begins "/dev/" Then
+
        tp = "Directory"
<FONT Color=gray>' ''Viene presa solo la parte che potenzialmente si riferisce al nome della cartella condivisa della nostra pen-drive:''</font>
+
      Case gb.Device
      dv = Scan(s, "* * *")
+
        tp = "Device  "
      Print dv[0] & Chr(32) & dv[1]
+
      Case gb.Pipe
<FONT Color=gray>' ''Individua e raccoglie la parte relativa al nome della cartella condivisa della nostra pen-drive:''</font>
+
        tp = "Pipe     "
      If InStr(dv[1], "-") Then
+
      Case gb.Socket
        Print "\nFile e cartelle presenti nel dispositivo '"; dv[1]; "':"
+
        tp = "Socket   "
        For Each s In Dir(dv[1], Null, 0)
+
      Case gb.Link
          Select Case Stat(dv[1] &/ s).Type
+
        tp = "Link     "
            Case gb.File
+
    End Select
              tp = "File    "
+
    Print "   \e[1m\e[31m"; tp, "\e[0m\e[0m"; s
            Case gb.Directory
+
  Next
              tp = "Directory"
+
            Case gb.Device
+
  End
              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'''
 
 
 
  
  

Versione attuale delle 16:31, 8 ott 2023

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 penna, per, s, tp As String

' Imposta il nome della "Pen-Drive" montata dal S.O.:
 penna = "40BA-E18A"

' Imposta il percorso completo della "Pen-Drive" montata dal S.O.:
 per = "/media" &/ User.Name &/ penna
   
 Print "\nFile e cartelle principali presenti nel dispositivo '"; per; "'\n"

 For Each s In Dir(per, Null, 0)
   Select Case Stat(per &/ 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 "   \e[1m\e[31m"; tp, "\e[0m\e[0m"; s
 Next

End


Note

[1] Questo percorso è testato almeno per la distribuzione Linux Mint.