Verificare l'esistenza di una directory

Da Gambas-it.org - Wikipedia.

Per verificare se una Directory esiste, si possono adottare almeno due modalità.


Uso delle risorse di Gambas

Si può utilizzare la funzione Exist( ), la quale ritorna vero se il file o la cartella, indicati nel suo parametro, sono esistenti.

Esempio pratico:

Public Sub Main()
 
 Dim ris, cartella As String
    
  cartella = "/tmp"
  
  If Exist(cartella) = False Then ris = " non"
  
  Print "La Directory "; cartella; ris; " esiste !"
  
End


Uso della funzione esterna opendir( )

Un'altra modalità prevede l'uso della funzione esterna "opendir( )", dichiarata nel file header "/usr/include/dirent.h". Tale funzione esterna restituisce un Puntatore valido, se non ha riscontrato errori nel tentativo di accesso alla Dyrectory impostata, altrimenti ritorna NULL, che in Gambas corrisponde, come valore predefinito di una variabile di tipo Puntatore, allo zero (0).

Library "libc:6"

' DIR *opendir (const char *__name)
' Open a directory stream on NAME.
Private Extern opendir(name As String) As Pointer


Public Sub Main()
 
 Dim cartella As String
 Dim drc As Pointer
 
  cartella = "/abcde"
  
  drc = opendir(cartella)
  If drc == 0 Then Error.Raise("Directory inesistente !")
  
End