Renomear arquivos em massa
Autor: Jonathan Stecker | Publicado: 2011-02-25T23:35:00-03:00

Nunca estiveram em uma situação de ter que renomear vários arquivos manualmente?Bom, nós sim! Por isso desenvolvemos uma rotina que renomeia arquivos em massa. (Basta ter uma lógica por trás.)Exemplo: Tenho em um determinado diretório vários arquivos com o formato .csv, porém gostaria de alterar todos eles para a extensão .xls!Perfeito, em vez de perder algum tempo fazendo essa mesma função manualmente, crie uma rotina que faça isso para você.Veja como:Antes de aplicar a função:Imports System.IOPublic Class frmRenomearArquivosPrivate Sub btnbuscarPasta_Click(ByVal sender As System.Object, _                           ByVal e As System.EventArgs) _       Handles btnDefinirDiretório.ClickIf Me.dirCaminho.ShowDialog() = Windows.Forms.DialogResult.OK Then  Me.txtCaminho.Text = Me.dirCaminho.SelectedPath  Me.BuscarArquivos(Me.txtCaminho.Text)End IfEnd SubPrivate Sub btnRenomear_Click(ByVal sender As System.Object, _                         ByVal e As System.EventArgs) _                         Handles btnRenomear.ClickIf String.IsNullOrEmpty(Me.txtCaminho.Text) Then  MessageBox.Show("Defina o diretório!", "Atanção!", _  MessageBoxButtons.OK, MessageBoxIcon.Stop)  Me.btnDefinirDiretório.Focus()  Exit SubEnd IfIf String.IsNullOrEmpty(Me.txtLocalizar.Text) Or _ String.IsNullOrEmpty(Me.txtSubstituir.Text) Then  MessageBox.Show("Preencher campos obrigatórios!", "Atenção!", _  MessageBoxButtons.OK, MessageBoxIcon.Stop)  Me.txtLocalizar.Focus()  Exit SubEnd IfTry  Me.RenomearArquivos()  Me.BuscarArquivos(Me.txtCaminho.Text)  Me.txtLocalizar.Clear()  Me.txtSubstituir.Clear()  Me.txtLocalizar.Focus()Catch ex As Exception  MessageBox.Show(ex.Message, "Erro!", _  MessageBoxButtons.OK, MessageBoxIcon.Error)End TryEnd SubPrivate Sub txtLocalizar_GotFocus(ByVal sender As Object, _                                 ByVal e As System.EventArgs) _                                 Handles txtLocalizar.GotFocusMe.txtLocalizar.SelectAll()End SubPrivate Sub txtSubstituir_GotFocus(ByVal sender As Object, _                                  ByVal e As System.EventArgs) _                                  Handles txtSubstituir.GotFocusMe.txtSubstituir.SelectAll()End Sub''' &lt;summary&gt;''' Renomeia os arquivos''' &lt;/summary&gt;Private Sub RenomearArquivos()For Each Arquivo As String In Directory.GetFiles(Me.txtCaminho.Text)  Dim NovoNome As String = String.Empty  Dim NomeArquivo As String = String.Empty  ' Extrai o diretório do nome do arquivo  If Arquivo.IndexOf("\") &gt;= 0 Then      NomeArquivo = Arquivo.Substring(0, Arquivo.LastIndexOf("\"))  Else      NomeArquivo = System.Environment.CurrentDirectory  End If  ' Define o novo nome para o arquivo  NovoNome = Replace(Arquivo.Substring(Arquivo.LastIndexOf("\") + 1), _             Me.txtLocalizar.Text, Me.txtSubstituir.Text)  ' Renomeia o arquivo  System.IO.File.Move(Arquivo, NomeArquivo &amp; "\" &amp; NovoNome)  MessageBox.Show("Os arquivos foram renomeados corretamente!", "Confirmação", _                  MessageBoxButtons.OK, MessageBoxIcon.Information)NextEnd Sub''' &lt;summary&gt;''' Preenche o ListBox com o nome dos arquivos''' que estiverem no diretório selecionado''' &lt;/summary&gt;''' &lt;param name="pDiretorio"&gt;Diretório dos arquivos a serem renomeados&lt;/param&gt;Private Sub BuscarArquivos(ByVal pDiretorio As String)Me.lsbArquivos.Items.Clear()If Directory.Exists(pDiretorio) Then  For Each Arquivo As String In Directory.GetFiles(pDiretorio)      Me.lsbArquivos.Items.Add(Arquivo.Substring(Arquivo.LastIndexOf("\") + 1))  NextElse  MessageBox.Show("Diretório inexistente!" &amp; vbCrLf &amp; pDiretorio, "Erro!", _                  MessageBoxButtons.OK, MessageBoxIcon.Error)End IfEnd SubEnd ClassApós aplicar a função (Resultado):  ResultadoDownload do arquivo completo: RenomearArquivos.zip