Ricercare cartelle vuote su server

Anonimo
2015-04-16T09:23:00+00:00

Buongiorno a tutti,

ho un problema che non sò come risolvere e perciò chiedo voi luminari:

Ho un server con i backup dei file della mia attività, composti da migliaia di cartelle all'interno delle quali ci sono file di word, excell, pdf, scansioni, e file derivanti da programmi specifici per la mia attività, ultimamente mi sono accorto che una cartella era intestata al cliente come normale, ma non conteneva assolutamente niente a questo punto la domanda è spontanea, solo questa cartella sarà vuota ?

Per accertarmene dovrei controllare una per una migliaia di cartelle,

perciò vi chiedo

potreste indicarmi un modo per controllare in automatico le cartelle e nel caso che siano vuote segnalarmelo?

Grazie in anticipo e cordiali saluti.

Tullio Niccoli

Microsoft 365 e Office | Installare, riscattare, attivare | Per la casa | Altro

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2015-04-21T16:57:16+00:00

Ops! Mi sono ricordato che a te non interessano le cartelle vuote nel senso di senza file ma anche senza cartelle. Ho aggiustato l'esempio e puoi scaricarlo allo stesso link, che riporto qui per tua comodità:

Cartelle vuote 2.xlsb

EDIT:

Aggiornato con intercettazione dell'errore "Autorizzazione negata".

La risposta è stata utile?

0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-04-20T16:17:34+00:00

    Ciao Maurizio, ciao Mauro,

    Vi ringrazio, per quanto riguarda il FileSystemObject mi sono impressionato quando sono apparsi i "membri" (si dice così?) non ho la più pallida idea di cosa siano e di cosa possano fare, mi dispiace.

    Invece ho provato l'esempio ma manda in errore  53  e excell non risponde più e alcune volte dice che non trova il "gcPrj". Può darsi che salti la rete?

    Ho Excell 2013.

    Capisco di essere un peso morto e capisco anche voi se non mi risponderete vedo se riesco a modificare il file di Mauro.

    Grazie comunque di quanto fatto.

    Tullio.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-04-17T14:45:33+00:00

    Ciao tullioniccoli (e ciao Mauro).

    Vedi se questo esempio fa al caso tuo. È basato sulla funzione Dir di Visual Basic.

    Quanto al codice di Mauro, fa quel che ti serve ma dovresti adattarlo alle tue esigenze. Potrebbe essere per te l'occasione buona di prendere confidenza con l'oggetto FileSystemObject.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-04-17T08:40:56+00:00

    Innanzitutto grazie Mauro per la immediata risposta.

    Si, per cartella intendo la directory.

    La sub che mi hai inviato trova le cartelle vuote all'interno della directory che indico nella stringa, ma mi segnala come vuota anche la cartella all'interno della quale non ci sono file evidenti ma magari un'altra o piu cartelle (e che sono quelle che contengono i file).

    Cerco di spiegarmi meglio:

    il percorso dovrebbe essere "\SERVER\public\cartelle"

    all'interno di "\cartelle" poi esistono le directory "\fatte", "\da fare", "\archiviate" che in teoria dovrebbero contenere quelle nominative finali (Es. "12345BGN" che sono quelle da ricercare) all'interno delle quali dovrebbero trovarsi i file word, pdf, ecc...

    Succede però alle volte che siccome la quantità del materiale è notevole, e "1234BGN" viene di nuovo suddiviso in una o più cartelle (directory) (es.: "\Tabulati" e "\Calcoli"contenenti i file) e in questo caso sarebbero queste quelle definitive da ricercare.

    Quindi c'è una notevole quantità di variabili.

    E' possibile fare questa ricerca solo indicando "\SERVER\public\cartelle" facendo fare la ricerca in tutte le sottodirectory e fare però in modo che oltre al nome della cartella vuota appaia anche l'indirizzo ?

    Ti ringrazio in anticipo e ti saluto.

    Tullio

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-04-16T09:50:10+00:00

    Per accertarmene dovrei controllare una per una migliaia di cartelle,

    perciò vi chiedo

    potreste indicarmi un modo per controllare in automatico le cartelle e nel caso che siano vuote segnalarmelo?

    Non ho un server sottomano da dove ti rispondo.

    Questo codice elenca le cartelle contenute in C:\Prova che sono vuote in una MsgBox :

    Public Sub m()

        Dim objFSO As Object

        Dim objFolder As Object

        Dim objFile As Object

        Dim objSubfolder As Object

        Dim colSubfolders As Object

        Dim lFile As Long

        Dim s As String

        Set objFSO = CreateObject("Scripting.FileSystemObject")

        Set objFolder = objFSO.GetFolder("C:\Prova")

        Set colSubfolders = objFolder.Subfolders

        For Each objSubfolder In colSubfolders

            lFile = 0

            lFile = objSubfolder.Files.Count

            If lFile < 1 Then s = s & objSubfolder.Name & vbNewLine

        Next

        MsgBox s

       Set objSubfolder = Nothing

       Set colSubfolders = Nothing

       Set objFile = Nothing

       Set objFolder = Nothing

       Set objFSO = Nothing

    End Sub

    La parte in grassetto è da modificare con la path del tuo server.

    Se vuoi vedere il risultato in un foglio di Excel (qui Foglio1), modifica così:

    Public Sub m()

        Dim objFSO As Object

        Dim objFolder As Object

        Dim objFile As Object

        Dim objSubfolder As Object

        Dim colSubfolders As Object

        Dim lFile As Long

        Dim lRiga As Long

        lRiga = 1

        Set objFSO = CreateObject("Scripting.FileSystemObject")

        Set objFolder = objFSO.GetFolder("C:\Prova")

        Set colSubfolders = objFolder.Subfolders

        For Each objSubfolder In colSubfolders

            lFile = 0

            lFile = objSubfolder.Files.Count

            If lFile < 1 Then

                Foglio1.Cells(lRiga, 1).Value = objSubfolder.Name

                lRiga = lRiga + 1

            End If

        Next

       Set objSubfolder = Nothing

       Set colSubfolders = Nothing

       Set objFile = Nothing

       Set objFolder = Nothing

       Set objFSO = Nothing

    End Sub


    NOTA. Per cartelle intendi le Directory, non le cartelle di Excel, vero?

    La risposta è stata utile?

    0 commenti Nessun commento