Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    forzare ciclo For Each..Next

    Salve ho un problema con questo codice in visual 2008

    codice:
    Public Class Form1
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
       For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
                My.Computer.FileSystem.SpecialDirectories.MyDocuments, _
                FileIO.SearchOption.SearchAllSubDirectories, "*.bmp")
                ListBox1.Items.Add(foundFile)
          Next
        End Sub
    End Class
    il programma ricerca tutti i file di tipo .bmp nella directory Documenti del Pc attraverso il
    ciclo For Each...next per poi stampare i loro percorsi in una ListBox.
    Il problema è che una di queste cartelle in documenti è protetta genarando un errore che blocca il ciclo.
    (esce questo msg: Accesso al percorso 'C:\Documents and Settings...\Documenti\Bluetooth' negato)
    L'errore è dato dall'eccezione "UnauthorizedAccessException" che
    viene generata quando il sistema operativo nega
    l'accesso a causa di un errore di protezione

    Vorrei forzare il ciclo in modo che si passi alla
    ricerca dei file nelle sottocartelle successive di documenti
    saltando le cartella di cui non si hanno i permessi.


    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Usa opportunamente una Try..Catch
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Forse non riesco ad usarlo bene ma il try l'avevo già provato.

    Se lo metto prima del ciclo non risolve nulla pechè una volta trovato l'errore blocca il flusso, ed io voglio che continui, Se invece metto il try dentro il ciclo mi esce un msg che dice che non può stare all'interno di un ciclo.

    Grazie cmq..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova ad usare questo codice

    codice:
            Dim tempDir As New DirectoryInfo(My.Computer.FileSystem.SpecialDirectories.MyDocuments)
            Try
                Dim allFiles As FileInfo() = Nothing
                For Each Directory In tempDir.GetDirectories()
                    Try
                        If (Directory.Attributes <> FileAttributes.System) Then
                            allFiles = Directory.GetFiles("*.bmp", SearchOption.AllDirectories)
                        End If
                        For Each oFile As FileInfo In allFiles
                            ListBox1.Items.Add(oFile.FullName())
                        Next
                    Catch ex As Exception
    
                    End Try
                    Application.DoEvents()
                Next
            Catch ex As UnauthorizedAccessException
    
            End Try
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    Prova ad usare questo codice

    codice:
            Dim tempDir As New DirectoryInfo(My.Computer.FileSystem.SpecialDirectories.MyDocuments)
            Try
                Dim allFiles As FileInfo() = Nothing
                For Each Directory In tempDir.GetDirectories()
                    Try
                        If (Directory.Attributes <> FileAttributes.System) Then
                            allFiles = Directory.GetFiles("*.bmp", SearchOption.AllDirectories)
                        End If
                        For Each oFile As FileInfo In allFiles
                            ListBox1.Items.Add(oFile.FullName())
                        Next
                    Catch ex As Exception
    
                    End Try
                    Application.DoEvents()
                Next
            Catch ex As UnauthorizedAccessException
    
            End Try

    Grazie oregon sei stato gentilissimo. Il codice funziona su windows xp ma su windows 7 non trova nessun file nella directory Documenti. Se invece cambio la directory (ad esempio c:\) trova i file ma non riesce ad entrare in Documenti. Forse win 7 ha una sorta di protezione?

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.