Ir para o conteúdo
Nilton Santos

[Resolvido] Scan de Ficheiros não está Funcionando Correctamente!

Mensagens Recomendadas

Nilton Santos

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

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.

Editado por 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.