A meno che tu non stia usando un metodo come OpenFile (), è bene assicurarsi che il file che desideri utilizzare esista; Altrimenti, può portare a errori inaspettati.
In questo articolo, avremo bisogno del pacchetto del sistema operativo dalla libreria standard GO per verificare se esiste un file prima di usarlo.
Metodo stat di Golang
Possiamo usare il metodo Golang Stat () per verificare se esiste un file. La sintassi della funzione è come mostrata:
func stat (name string) (fileinfo, errore)
La funzione prende il nome del file come argomento e restituisce le informazioni del file come oggetto (se esiste il file) o un errore.
Tieni presente che il metodo stat può riscontrare molti errori. Quindi, dobbiamo verificare se si tratta di un file che non esiste un errore. Possiamo farlo usando il sistema operativo.Errore errnotexist ().
Considera il codice di esempio mostrato di seguito:
Pacchetto principale
importazione (
"errori"
"FMT"
"tronco d'albero"
"OS"
)
func main ()
_, err: = OS.Stat ("ciao.TXT")
se errori.È (err, sistema operativo.Errnotexist)
tronco d'albero.Fatale ("file non esiste")
altro
fmt.Println ("file esiste")
Una volta eseguito il codice sopra, dovrebbe verificare se il file esiste nel percorso fornito. Controlliamo se il file esiste nella directory corrente nel nostro esempio.
Il programma sopra dovrebbe restituire:
$ go run check_file_exists.andare
il file esiste
Se specifichiamo un file che non esiste, l'output è come mostrato:
Il file non esiste
Stato di uscita 1
Se si desidera visualizzare qualsiasi altro errore diverso dall'errore "File non esiste", possiamo fare:
Pacchetto principale
importazione (
"errori"
"FMT"
"tronco d'albero"
"OS"
)
func main ()
_, err: = OS.Stat ("HelloTtxt")
Se err != nil
tronco d'albero.Fatale (err)
se errori.È (err, sistema operativo.Errnotexist)
tronco d'albero.Fatale ("file non esiste")
altro
fmt.Println ("file esiste")
Conclusione
Questa guida ti ha mostrato come verificare se esiste un file prima di usarlo. Questo può aiutare a prevenire un errore fatale nel tuo programma.