Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    15

    [VB.NET] Evitare scansione cartella specifica

    Salve a tutti!
    In un mio applicativo utilizzo l'istruzione
    codice:
    Dim files() As String = IO.Directory.GetFiles(sourceDir, "*.*", IO.SearchOption.AllDirectories)
    per ottenere un array contenente il percorso di ciascun file trovato nella cartella "sourceDir", che dovrà essere poi copiato. Ora, visto che la cartella che devo copiare contiene alcune subdirectory che sono inaccessibili all'utente, mi si genera un'errore "Access Denied" ogni volta che ne viene trovata una e mi si blocca l'intero programma. C'è un modo per escludere dalla scansione una determinata cartella?

    Grazie in anticipo!

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    15
    Quote Originariamente inviata da gibra Visualizza il messaggio
    Aggiungere un Try/Catch ?
    Si ma facendo una cosa del genere avrei un problema:
    codice:
       Try
                Dim files() As String = IO.Directory.GetFiles(sourceDir, "*.*", IO.SearchOption.AllDirectories)
            Catch EX As UnauthorizedAccessException
                MsgBox(EX.Message)
            End Try
    Al verificarsi dell'eccezione il programma smetterebbe immediatamente di aggiungere stringhe all'array files(). Sfortuna vuole che il primo file rilevato dalla scansione sia proprio uno di quelli inacessibili, quindi il programma non aggiungerebbe alcuna stringa all'array e il software non andrebbe più avanti.
    C'è un modo di far ignorare la stringa incriminata e di proseguire ad aggiungere le altre all'array?

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Mmm, vedo che non conosci bene la gestione degli errori (che invece è una cosa fondamentale e di primaria importanza!)
    Nessuno ti costringe né a mostrare il messaggio, né ad uscire per forza. Al contrario, puoi gestire l'eccezione.

    Ti suggerisco di leggere questi:

    La gestione degli errori in VB .NET | Guida Visual Basic .NET | .NET HTML.it
    http://www.html.it/pag/15702/la-gest...ori-in-vb-net/

    Istruzione Try...Catch...Finally (Visual Basic)
    https://msdn.microsoft.com/it-it/library/fk6t46tz.aspx

  5. #5
    https://msdn.microsoft.com/en-us/library/bb513869.aspx

    " If you have to handle these exceptions on specific subfolders, you must manually walk the directory tree, as shown in the following examples..."

    Gli esempi sono in C#, ma con un convertitore online C# to VB.net li riporti in VB.net.

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.