Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32

    [VB2008]eccezione in ricerca file

    ciao a tt ...ho un piccolo problema ...ho ftt un programmino che cerca un file nella directory C:\ con questo codice:
    codice:
    For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
    "C:\", _
    FileIO.SearchOption.SearchAllSubDirectories, "miofile.ext")
    next
    il problema è che quando cerca nella cartella "C:\system volume information" da errore xkè mi dice accesso negato alla directory allora io vorrei aggiungere un eccezione alla ricerca ovvero dovrebbe cercare in tutte le directory e sottodirectory di C:\ tranne ke nella cartella system volume information , oppure tranne nelle cartelle nascoste.......come posso fare??

  2. #2
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    possibile ke nessuno mi sappia aiutare???????? ho kiesto in 3 forum diversi (compreso questo), ma non ho avuto risposta in nessuno dei 3........è un problema così complicato da risolvere????????????????????

  3. #3
    Non usare il metodo in questione ma scriviti una funzione di ricerca ricorsiva (utilizzando le classi contenute in System.IO) per cercare i file, e gestendo le eventuali eccezioni quando cerchi di ottenere i file contenuti in ogni cartella in modo da ignorare gli errori relativi alle cartelle protette.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Usa la Try ...

    codice:
            Try
                For Each ...
                Next
            Catch ex As Exception
            End Try
    Naturalmente la ricerca si fermera' quando c'e' l'errore. Se vuoi continuare a cercare, dovrai rinunciare alle due righe e scrivere una tua funzione.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    inanzitutto grazie x l'aiuto...già avevo provato a usare la try , ma appunto la ricerca si blocca quando va in errore , stesso risultato anke con "on error...." , come posso fare per crearmi una funzione ricorsiva ??...putroppo ancora non l'ho capita bn qst funzione , qualcuno può postarmi un esempio ?? ..oppure una guida ke spiega cm fare....

  6. #6
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    upppp

  7. #7
    È pieno internet di funzioni ricorsive di ricerca, suvvia, un po' d'intraprendenza...
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    se vuoi te la posto ma se non conosci la ricorsione e ti incagli su qualcosa di basilare forse è meglio continuare lo studio prima di avventurarsi in progetti

  9. #9
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    uff non pensavo fosse così complicato cercare un file!!! VVoVe:
    cmq qst è il massimo ke sono riuscito a fare :
    codice:
       Public Sub Search(ByVal Dir As String)
          
            Dim Dirs() As String = IO.Directory.GetDirectories("C:\")
          
            Dim Files() As String = IO.Directory.GetFiles("C:\")
    
       For Each S As String In Dirs
                MsgBox(S)
                Application.DoEvents()
            Next
          
      For Each S As String In Dirs
                Search(S)
            Next
        End Sub
    così ottengo tutte le directory e sotto directory di "C:\" , ma ora??? ....rimane sempre il problema di escludere la cartella "system volume information" ...a me servirebbe un codice ke ora cancella dalle directory ke ho trovato questa che mi da l'errore..........................

  10. #10
    uff non pensavo fosse così complicato cercare un file!!!
    Adesso, complicata una funzione ricorsiva di ricerca...

    Basta racchiudere in un Try il codice che accede alle directory, in questa maniera se ci sono problemi la cartella verrà tranquillamente saltata.
    Tra l'altro il codice che hai scritto non tiene conto del parametro Dir, e questo non ha molto senso... inoltre se stai cercando di ottenere una lista di file devi ben memorizzare la lista di file trovati da qualche parte, no? E se ti interessa trovare un file specifico dovrai anche inserire un qualche parametro per specificare il nome del file da trovare, e aggiungere il codice per confrontarlo con tutti i nomi di file che incontri.
    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.