Risolto Aggiungere Items in una ListView in automatico

essekappa

Utente abituale
18 Novembre 2015
127
16
udine
2010
1
Salve,
sono tornato con domande su ListView.

Vorrei aggiungere Items in una ListView andando a prendere nomi di file presenti in una cartella.
Ovvio che potrei farlo manualmente con .Items.Add(), ma trattandosi di centinaia di voci di file, chiedevo se ci fosse una via più breve.

Grazie per l'interessamento
 

essekappa

Utente abituale
18 Novembre 2015
127
16
udine
2010
1
Ho visto delle soluzioni tipo

For Each foundFile As String In My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.MyDocuments)
ListView1.Items.Add(foundFile)
Next

ma questo mi aggiunge un Item con tutto il percorso del file e non solo il nome.
 

dracoscrigno

CioccaPiatti & VBA Expert
Expert
1 Maggio 2016
3.905
63
office pro 2010
49
ListView1.Items.Add(foundFile)

Imposta foundfile come file e non come string.
Poi, nell istruzione che ho riportato qui sopra, aggiungi un punto e vedi cosa ti propone l intellisense ;)


Rieditando...

Mi sa che il caffè mi ha fatto male... Non sono sicuro che la collection siano fike ma mi sa che son solo string...
 

dracoscrigno

CioccaPiatti & VBA Expert
Expert
1 Maggio 2016
3.905
63
office pro 2010
49
Visual Basic:
For Each mioFile As String in My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.MyDocuments)
    Me.ListBox1.Items.Add(New FileInfo(mioFile).Name)
Next
 
  • Like
Reactions: essekappa

essekappa

Utente abituale
18 Novembre 2015
127
16
udine
2010
1
dracoscrigno @dracoscrigno
L'ho appena provata, e funziona, solo che ho dovuto cambiare
Me.ListBox1.Items.Add(New FileInfo(mioFile).Name)
con
Me.ListBox1.Items.Add(New IO.FileInfo(mioFile).Name)
se no mi dava errore.

Tutto bene e grazie
 

essekappa

Utente abituale
18 Novembre 2015
127
16
udine
2010
1
dracoscrigno @dracoscrigno

...ehm ehm...
forse cado nel caso di una precedente discussione, cioè funziona e mi scrive i nomi dei file, solo che me li scrive compresi di estensione (es. .PDF) che io non vorrei visualizzare.
Posso fare qualcosa?? (visto che l'argomento .Name non lo posso cancellare)
 

giulianovac

Access/VBA Expert
Expert
9 Giugno 2018
2.233
83
Italy
2013 2019
166
Puoi usare Replace: una volta recuperato il Name esegui un Replace sostituendo ".pdf" con una stringa nulla.
Oppure estrai la parte che ti interessa con LastIndexOf:

P.S. Però, francamente, non capisco perché tu abbia aperto una nuova disucssione per lo stesso argomento:
dovevi continuare la discussione originale.
 
  • Like
Reactions: essekappa

essekappa

Utente abituale
18 Novembre 2015
127
16
udine
2010
1
dracoscrigno @dracoscrigno

...ehm ehm...
forse cado nel caso di una precedente discussione, cioè funziona e mi scrive i nomi dei file, solo che me li scrive compresi di estensione (es. .PDF) che io non vorrei visualizzare.
Posso fare qualcosa?? (visto che l'argomento .Name non lo posso cancellare)
...forse ce l'ho fatta...
ho modificato così
Items.Add(IO.Path.GetFileNameWithoutExtension(File))
 

essekappa

Utente abituale
18 Novembre 2015
127
16
udine
2010
1
giulianovac @giulianovac
...beh ho fatto altri esperimenti, e visto che avevo gia messo RISOLTO sulla precedente discussione, ne avevo aperta una nuova.
Chiedo scusa :piango:
 

dracoscrigno

CioccaPiatti & VBA Expert
Expert
1 Maggio 2016
3.905
63
office pro 2010
49
L'ho appena provata, e funziona, solo che ho dovuto cambiare
Me.ListBox1.Items.Add(New FileInfo(mioFile).Name)
con
Me.ListBox1.Items.Add(New IO.FileInfo(mioFile).Name)
se no mi dava errore.

Tutto bene e grazie
va bene.
se devi scriverlo solo una volta va benissimo così.
se devi scriverlo molteplici volte e vuoi risparmiarti qualcosa basta che importi System.IO

fuori dalla classe, scrivi:
imports (poi segui la tendina fino ad arrivare al ramo dello spazio dei nomi che ti è più utile ricordando di fare attenzione a non rendere disponibili membri di spazi differenti con nomi uguali...

tra, ' altro, quando scrissi il post, ricordo di averlo rieditato per aggiungerci qualche altro modo perchè non è l' unico modo per avere un nome di file ma ci sono anche altri metodi legati ad altri oggetti ed altri spazi dei nomi...

infatti io ti scrissi Io.FileInfo ma poi ha trovato pure io.Path.
e se cerchi in rete, sulal guida in linea o anche altrove, vedrai che ce n'è da farsi venire il mal di testa... puoi trovi il gruppetto di istruzioni che più ti agggrada, ti impari quello e dimenti chi il resto.... tanto la guida e l' intellisense ti danno una mano
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!