Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482

    [VB6] Cercare un file o una cartella

    Ho già cercato nel forum ma non ho trovato nulla che i serva.

    Data una cartella come accedo a tutti i file e a tutte le sottocartelle (non devo fermrmi al primo livello, ma proseguire finchè ci sono file e cartelle)?

    Questo è il mio codice di partenza:

    codice:
    Sub AllFolders(folderspec)
        Dim fs, f, f1, s, sf
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFolder(folderspec)
        Set sf = f.SubFolders
        For Each f1 In sf
        '.....
        '.....
        Next
    End Sub
    Ma questo ovvimante si ferma al primo livello...

    Hey hey, my my Rock and roll can never die!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Ci sono riuscitooooooooooooooooo!

    Con questo codice, data una directory si ispezionano tutte le sotto cartelle contenute:

    codice:
    Sub AllFolders(folderspec)
        Dim fs, f, f1, s, sf
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFolder(folderspec)
        Set sf = f.SubFolders
        For Each f1 In sf
            s = f1.Name
            MyLabel.Caption = folderspec & "\" & s
            Call AllFolders(folderspec & "\" & s & "\")
        Next
    End Sub
    Ora ho un problema, l'operazione può essere molto lunga, come posso permettere all'utente di annullare il processo?
    Un altra cosa, la parte segnata in grassetto, è inutile per l'operazione di ricerca è forse troppo veloce, e nella label non appare niente.

    Hey hey, my my Rock and roll can never die!

  3. #3
    presupponendo che il percorso inziale sia dato da text1.text
    che il via della procedura da command1_click e lo stop della stessa da command2_click

    codice:
    Option Explicit
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    
    Private Sub Command1_Click()
    Command2.Tag = "vai"
    AllFolders Text1.Text
    End Sub
    
    Sub AllFolders(folderspec)
        Dim fs, f, f1, s, sf
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFolder(folderspec)
        Set sf = f.SubFolders
        For Each f1 In sf
            DoEvents
            If Command2.Tag = "stop" Then
                myLabel.Caption = ""
                myLabel.Refresh
                Exit Sub
            End If
            s = f1.Name
            myLabel.Caption = folderspec & "\" & s
            myLabel.Refresh
            Sleep 1000 'questo serve solo per rallentare di un secondo
            'se riesci a vedere il risultato senza è meglio toglierlo
            Call AllFolders(folderspec & "\" & s)
        Next
        
    End Sub
    
    Private Sub Command2_Click()
       Command2.Tag = "stop"
    End Sub
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Grazie Xegallo, avevo già risolto allo stesso modo, ma ho peferito non usare il Sleep.

    Ora ho un problema che non riesco a capire, perchè quando controlla l'unità C:\ non mi controlla la cartella "Windows"?
    Ho notato poi che controlla alcune cartelle che in esplora risorse non vedo, tipo (C:\System Volume Info)???

    Hey hey, my my Rock and roll can never die!

  5. #5
    Originariamente inviato da zampa28
    Grazie Xegallo, avevo già risolto allo stesso modo, ma ho peferito non usare il Sleep.

    Ora ho un problema che non riesco a capire, perchè quando controlla l'unità C:\ non mi controlla la cartella "Windows"?
    Ho notato poi che controlla alcune cartelle che in esplora risorse non vedo, tipo (C:\System Volume Info)???
    c:\recicled e c:\system volume info

    sono directory nascoste a cui non si ha accesso
    metti un "on errore resume next"
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Non mi da errore, semplicemente le mostra.

    E per la cartella Windows sai dirmi niente?

    Hey hey, my my Rock and roll can never die!

  7. #7
    Originariamente inviato da zampa28
    Non mi da errore, semplicemente le mostra.

    E per la cartella Windows sai dirmi niente?
    a me la mostra normalmente
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.