Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Ricerca file

    Salve a tutti! mi sono appena reggistrato e vorrei chiedere aiuto: ho bisogno di creare un file.vbs che una volta avviato cerchi su tutto l'hardisk tutti i file con l'estensione .tmp ...
    e tutto il giorno che cerco su google ma nn ho trovato nulla
    sapreste aiutarmi?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Trattandosi di un file VBS, perché non usare l'apposito prefisso (invece di VB6, che non c'entra nulla)?

    Correggo io il titolo. Non dimenticare di leggere anche il nostro Regolamento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Invece di cercare soluzioni già pronte su google potresti spremerti un attimo le meningi ed utilizzare un normale algoritmo di ricerca ricorsiva con il FileSystemObject (quello sì reperibile con Google, qualora ce ne fosse bisogno). L'altra possibilità è di usare un banalissimo dir x:\*.tmp /s /b al prompt dei comandi, che ti mostra tutti i file con estensione tmp contenuti nel drive x.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    ci havevo provato ma non ci sono riuscito e cosi avavo pensato di andare a vedere su google ... cmq deve erssere su un vbs senza usare il prompt



    ps scusate x il nome (vb6) mi sono sbagliato!

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Puoi usare l'oggetto File1, poi
    con le proprietà Pattern e Path setti il tipo di file che
    vuoi filtrare e con path punti l'oggetto nella posizione in cui cercare:

    codice:
    Private Sub Form_Load()
        File1.Pattern = "*.tmp"
        File1.Path = "C:\Prova"   'legge quanti file .tmp sono nella cartella \Prova
    End Sub
    Il tutto lo devi inserire, con le opportune modifiche, in un ciclo per sfogliare le cartelle in C:\
    LM

  6. #6
    non riesco a impostare il ciclo x sfogliare c: riesco solo a sfogliare la cartella c: ma non tutte le sotto cartelle...

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ho lasciato la strada in precedenza tracciata per una routine ricorsiva. Funziona, anche se migliorabile, per questo la sottopongo all'attenzione degli amici del Forum.
    Inserisci un CmdButton ed una ListBox:

    codice:
    Private Sub Command1_Click()
    
     Dim MyPath
     Dim MyName
     
     MousePointer = 11
     
     ' Imposta il percorso:
        MyPath = "C:\"
    
        Dim fso As New FileSystemObject
        Dim f As Folder
    
        Set f = fso.GetFolder(MyPath)
        
        Call MyFile(f)
        
        MousePointer = 0
    
    End Sub
    '-------------------------------------
    Private Sub MyFile(fol As Folder)
        On Error Resume Next
        
        Dim fl As Folder
        Dim fi As File
        Dim i As Long
        Dim str1 As String
        
            For Each fi In fol.Files
                str1 = Right$(fi, 4)
                If str1 = ".tmp" Then
                    List1.AddItem fi.Path, (i)
                    i = i + 1
                End If
            DoEvents
            Next
        
        For Each fl In fol.SubFolders
            Call MyFile(fl)
        Next
    
    End Sub
    LM

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ma, se dovesse interessare è bene fare due modifiche al codice:
    - Portare la dichiarazione di variabile Dim i As Long a livello di Generale/Dichiarazioni in modo che mantenga la numerazione progressiva;
    - modificare la linea: List1.AddItem fi.Path, (i) in List1.AddItem i & Space(3) & fi.Path, (i) in modo che a sinistra enumeri i files trovati.
    LM

  9. #9
    Per poter guardare tutte le cartelle c'è un modo semplicissimo, usando in combinata il FileListBox e il DirListBox.

    Ad esempio con un ciclo for per 10 sottocartelle, apri la cartella c nel DirListBox, quindi copi in un ComboBox tutti gli indirizzi delle sotto cartelle (in contemporanea apri i file con il FileListBox), qundi apri tutte le sottocartelle nel DirListBox, e così via. Spero di non averti confuso!
    printf("Programmazione in C!");
    cout<<"Programmazione in C++!";

  10. #10
    Stiamo parlando di VBS, non VB6, di conseguenza non c'è alcun controllo FileListBox e DirListBox.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.