Nilton Santos Posted August 13, 2013 at 10:59 AM Report #521595 Posted August 13, 2013 at 10:59 AM 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.
ribeiro55 Posted August 13, 2013 at 11:20 AM Report #521597 Posted August 13, 2013 at 11:20 AM (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 August 13, 2013 at 11:24 AM 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"
Nilton Santos Posted August 13, 2013 at 04:31 PM Author Report #521629 Posted August 13, 2013 at 04:31 PM Funciono! Muito obrigado
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now