Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Eduardo Zaparoli

Copiar MP3

Recommended Posts

Olá, bom dia, eu qro criar um executavel que percorre toda a unidade especificada no form e copia todos os arquivos com extensão .mp3 para um local especificado também...alguem pode me ajudar, ja adianto que estou começando agora e não tenho mta experiencia....

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, bom dia, eu qro criar um executavel que percorre toda a unidade especificada no form e copia todos os arquivos com extensão .mp3 para um local especificado também...alguem pode me ajudar, ja adianto que estou começando agora e não tenho mta experiencia....

Obrigado!!

 

 

Carlos,

 

Você quer percorrer uma unidade completa? Com todas suas sub-pastas e sub-pastas das sub-pastas? Não é muito trabalhoso, mas vai ser muito lento e oneroso pro sistema operacional, pois utiliza-se de técnica recursiva, além disso existem alguns problemas que podem acontecer, alguns deles são:

  • Permissão de acesso à pasta,
  • Pastas ocultas de sistema
  • Nomes muito grandes(o objeto FileInfo tem alguns limites e como será percorrido de forma recursiva, se o arquivo estiver em uma pasta que por sua vez está dentro de outra pasta e assim por diante, o caminho completo do arquivo pode ficar muito grande resultando em problemas na hora de manipular o objeto)
Bom, não estou aqui para criticar e sim tentar te ajudar, vamos lá:

 

Qualquer coisa que você queira fazer pode ser usado VB.NET ou C#, o que muda é sua facilidade em usar uma ou outra.

 

Exemplo em VB.NET

Programa do tipo Console, mas pode usar de qualquer outra forma.

 

Crie um novo projeto do tipo Console e no arquivo Module1.vb deixe da seguinte forma:

Imports System.IO
Module Module1
    'Esse objeto está declarado aqui para ser acessado em qualquer lugar do programa
    Public _ListaDeArquivos As List(Of FileInfo) = New List(Of FileInfo)

    Sub Main()
        Dim unidade As String
        Dim ext As String

        'Infomar sempre um local seguido de "\" ex.: D:\ ou C:\Downloads\
        Console.WriteLine("Informe o local de início de busca")
        unidade = Console.ReadLine()
        'o tipo de arquivo que quer encontrar, no seu caso fica mp3
        Console.WriteLine("Informe a extensão para busca")
        ext = Console.ReadLine()
        VarreUnidade(unidade, ext)
        Console.WriteLine("Pronto!")
        Console.ReadLine()
    End Sub
    Public Sub VarreUnidade(ByVal unidade As String, ByVal ext As String)
        Dim _DirectoryInfo = New DirectoryInfo(unidade)
        For Each _FileInfo In _DirectoryInfo.GetFiles("*." & ext)
            _ListaDeArquivos.Add(_FileInfo)
        Next
        For Each _Directory In _DirectoryInfo.GetDirectories()
            VarreUnidade(_Directory.FullName, ext)
        Next
    End Sub
End Module

O mesmo exemplo em C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1VarreUnidadeCSharp
{
    class Program
    {
        //Esse objeto está declarado aqui para ser acessado em qualquer lugar do programa
        static List<FileInfo> _ListaDeArquivos = new List<FileInfo>();
        static void Main(string[] args)
        {
            String unidade;
            String ext;

            //Infomar sempre um local seguido de "\" ex.: D:\ ou C:\Downloads\
            Console.WriteLine("Informe o local de início de busca");
            unidade = Console.ReadLine();
            //o tipo de arquivo que quer encontrar, no seu caso fica mp3
            Console.WriteLine("Informe a extensão para busca");
            ext = Console.ReadLine();
            VarreUnidade(unidade, ext);
            Console.WriteLine("Pronto!");
            Console.ReadLine();
        }
        static void VarreUnidade(String unidade, String ext)
        {
            DirectoryInfo _DirectoryInfo = new DirectoryInfo(unidade);
            foreach (FileInfo _FileInfo in _DirectoryInfo.GetFiles("*." + ext))
            {
                _ListaDeArquivos.Add(_FileInfo);
            }
            foreach (DirectoryInfo _Directory in _DirectoryInfo.GetDirectories())
            {
                VarreUnidade(_Directory.FullName, ext);
            }
        }
    }
}

Espero que isso te ajude, qualquer coisa é só perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.