Jump to content

Recommended Posts

Posted

Olá! Quero que o meu programa procure por determinados tipo de ficheiros por exemplo: imagens, musicas. videos etc. Ele deve a procura na Pasta Os meus Documentos. Para isso eu deviria usar o seguinte codigo:

Dim ScanMP3() As String = IO.Directory.GetFiles(Pasta & "\", "*.mp3", IO.SearchOption.AllDirectories)

O Problema é que se o tipo de procura estiver como AllDirectories, o programa não funciona. Eu tenho que mudar o tipo de procura para o TopDirectoriesonly para que ele possa procurar somente na pasta os documentos mas não nas subpastas.

Eu tentei até fazer uma função recursiva mas mesmo assim o codigo não faz o que eu quero.

Posted (edited)

Funcionar funciona.

O problema é que o contexto normal de execução de uma aplicação .NET não tem permissão para brincar na pasta dos "My Documents".

Quando esbarra com uma pasta onde não pode entrar, todo o processo cai por terra.

Ou forças confirmação do UAC ou controlas os Gets um a um (o que implica a recursão).

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim ScanMP3 As List(Of String) = Escavar(FileIO.SpecialDirectories.MyDocuments.TrimEnd("\"), "*.mp3")
   End Sub

   Private Function Escavar(Caminho As String, ParamArray Wcards As String()) As List(Of String)
       Dim tmpLst As New List(Of String)
       Try
           For Each D As String In FileIO.FileSystem.GetDirectories(Caminho)
               tmpLst.AddRange(Escavar(D, Wcards))
           Next
       Catch ex As Exception
           Debug.WriteLine("ERRO: " & ex.Message)
       End Try
       Try
           For Each F As String In FileIO.FileSystem.GetFiles(Caminho, FileIO.SearchOption.SearchTopLevelOnly, Wcards)
               tmpLst.Add(F)
           Next
       Catch ex As Exception
           Debug.WriteLine("ERRO: " & ex.Message)
       End Try
       Return tmpLst
   End Function

Aí tens uma função recursiva que trata as excepções dos Gets (de forma genérica: Exception) e escreve os erros no Output, para teres ideia do que está a falhar.

Edited by ribeiro55

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.