Autore Topic: [Risolto] Eliminare tutti i file presenti in una cartella  (Letto 560 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
 :rolleyes:
mi sono impantanato nel problema di come eliminare tutti i file eventualmente presenti in una cartella.

Una cosa di questo genere:
Codice: [Seleziona]
Kill "/percorso_della_cartella/*.*"
non funziona.

Non vorrei utilizzare il solito "Deus ex machina", chiamato Shell, che scende dall'alto e risolve sempre ogni cosa...  ;D .
In questo caso potrei fare:
Codice: [Seleziona]
Shell "rm /percorso_della_cartella/*.*"
e la cosa ovviamente funziona.

Vorrei (è più ragionevole ! No ?) utilizzare solo le funzioni di Gambas.

Suggerimenti ?
« Ultima modifica: 05 Marzo 2012, 16:48:38 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Eliminare tutti i file presenti in una cartella
« Risposta #1 il: 03 Marzo 2012, 03:22:06 »
Nel frattempo non ho dormito  :hard: , ed mi sono dato questa risposta:

Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim ogniFile As String

  For Each ogniFile In Dir("/percorso_della_cartella/", "*.*")

  ' leggo con sadica curiosità i nomi, comprese estensioni, dei file che eliminerò:
      Print ogniFile

  ' distruggo ciascun file "con estensione" presente nella directory:
      Kill "/percorso_della_cartella/" & ogniFile
  
  Next

' ma poiché mi era sfuggito qualche file "senza" estensione...
  For Each ogniFile In Dir("/percorso_della_cartella/", "*")

      Print ogniFile

  '...distruggo anche quelli superstiti:
      Kill "/percorso_della_cartella/" & ogniFile
  
  Next
    
 Print "Ora tutti kaput !"

End

e funziona.  :coder:

In vero, ho notato che funziona anche più brevemente così:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim ogniFile As String

  For Each ogniFile In Dir("/percorso_della_cartella")

      Print ogniFile

  ' distruggo ciascun file (con o senza estensione) presente nella directory:
      Kill "/percorso_della_cartella/" & ogniFile
  
  Next

End



...magari, se avete anche altre soluzioni, possono sempre essere utili (nel frattempo metto "Risolto", ma potete sempre aggiungere altre soluzioni).
« Ultima modifica: 23 Maggio 2012, 00:23:40 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »