Dunque: istruzione tipo
Dim files As String[]
Dim arr As String[]
for j=0 to 2
files.Insert(RDir(directory, arr[j]))
next
dove arr[j] appunto, proviene da un array, e contiene dei valori, per esempio *.txt. oppure nome.txt. Il problema si ha quando si deve aggiungere pure un file nascosto, ovvero con il punto davanti al nome... c'e' modo di farlo, o non sono completamente addormentato?
...hai provato con il filtro "*.*" ?
Ho fatto un esperimento con la funzione Dir, cercando di visualizzare in console i nomi dei file nascosti contenuti nella cartella di un progetto Gambas:
Public Sub Button1_Click()
Dim file As String
For Each File In Dir("percorso_cartella_progetto_Gambas", "*.*")
Print File
Next
End
ed ho visto i nomi, comprensivi del punto, di tutti i file e le cartelle nascosti. :-\
Sembrerebbe che effettivamente un filtro diretto ed immediato sui file nascosti non possa applicarsi.
...potresti utilizzare un altro tipo di filtro - successivo :-\ - con la proprietà .Hidden della funzione Stat. :-X
Facciamo un esempio banale e solo esplicativo: abbiamo una cartella contenente vari file, dei quali alcuni nascosti. Vogliamo mostrare i nomi solo dei file nascosti:
Public Sub Button1_Click()
Dim FileName As String
For Each FileName In Dir("percorso_della_cartella_contenente_i_file", "*.*")
If Stat("percorso_della_cartella_contenente_i_file" & FileName).Hidden Then Print FileName
Next
End
:-\
Temo che dovro' farlo...
Aspetta, aspetta...... prova a usare quest'altro filtro: ".*"
Io ho effettuato un nuovo esperimento con questo diverso filtro. Da una cartella, contenente vari file, dei quali alcuni nascosti, ho voluto mostrare i nomi dei soli file nascosti:
Public Sub Button1_Click()
Dim file As String
For Each File In Dir("percorso_cartella", ".*")
Print File
Next
End
...ed ha funzionato.
Ho visto il tuo messagggio nella M.L.I., ed l'ho ripreso per cercare di provarlo.
Ho inserito in una cartella 6 file:
- 1 con estensione .mp3;
- 1 con estensione .odt;
- 1 con estensione .jpg;
- 3 nascosti.
Ho poi modificato leggermente il tuo codice come segue:
Public Sub Button1_Click()
Dim files As String[]
Dim directory As String
directory = "percorso_della_mia_cartella_contenente_i_6_file"
files = RDir(directory, "*.odt", gb.file)
Print files.length
files.Insert(RDir(directory, "*.jpg", gb.file))
Print files.length
files.Insert(RDir(directory, "*.mp3", gb.file))
Print files.length
files.Insert(RDir(directory, ".*", gb.file))
Print files.length
End
ecco coerentemente i risultati in console:
1
2
3
6
Pertanto a me il tuo codice funziona :-\ . Funziona anche se pongo l'ultima istruzione così:
files.Insert(RDir(directory, ".*"))
Funziona anche se voglio raccogliere solo due dei tre file nascosti:
files.Insert(RDir(directory, ".set*", gb.file))
Print files.length
files.Insert(RDir(directory, ".pro*", gb.file))
in console avrò coerentemente i seguenti risultati:
1
2
3
4
5
(il sesto file, avente un nome diverso, l'ho - come previsto - escluso dal codice).
Io ho Ubuntu e Gambas 3 Versione=3.3.90