9 messaggi dal 24 novembre 2014
Premessa: lavoro su MS Visual Studio Express 2013 per Windows (Visual Basic)

Dall'help on-line di Microsoft ho trovato questo esempio:
-------------------------
Dim counter As System.Collections.ObjectModel.ReadOnlyCollection(Of String)

counter = My.Computer.FileSystem.GetFiles(PathScelto,
FileIO.SearchOption.SearchTopLevelOnly, "*.*")

MsgBox("number of files is " & CStr(counter.Count))
-------------------------

La routine permette di contare il numero di file eventualmente presenti nel PathScelto. Tuttavia NON considera, come esistente, l'eventuale presenza di una cartella al suo interno.

Per essere piu' chiaro, avrei bisogno di verificare se una cartella e' completamente vuota (ne' file, ne' cartelle, ne' eventuali file "nascosti").

Potete aiutarmi? Grazie!
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Dario,
per tutte le operazioni che riguardano file e cartelle dovresti usare le classi del namespace System.IO.
Nel tuo caso particolare, hai la classe Directory che ha dei metodi statici per recuperare l'elenco di file e sottocartelle. Solo se entrambi i metodi restituiscono insiemi vuoti, allora vuol dire che la cartella è vuota.

Dal .NET Framework 4, hai un nuovo metodo EnumerateFileSystemEntries che restituisce indifferentemente file e sottocartelle. Basta controllare il risultato di quello.

Non ti posto righe di codice, la soluzione è in questa discussione.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/2239b45a-3f19-4a2a-b5cd-050b3ee32b9d/how-can-i-check-folder-is-empty-or-not?forum=csharpgeneral

ciao,
Moreno
Modificato da BrightSoul il 21 gennaio 2015 22.22 -

Enjoy learning and just keep making
9 messaggi dal 24 novembre 2014
Anzitutto, grazie per la rapida risposta: mi e' stata utilissima e ha risolto il problema. In effetti il banalissimo codice...

If (Directory.EnumerateFileSystemEntries(PathScelto, "*", SearchOption.AllDirectories).Any()) = True Then [eccetera]

...verifica l'eventuale presenza di file o cartelle all'interno di PathScelto.

Forse il risultato della ricerca che ho fatto nel forum di Microsoft e' stato nullo perche' la risposta c'e', ma nella sezione Visual C (invece l'avevo chiesta esplicitamente per Visual Basic). Svantaggio di chi e' troppo pignolo!
Modificato da Dario_VB il 22 gennaio 2015 18.08 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.