VB .NET - Enviando arquivos e diretórios para a lixeira
Hoje temos uma dica básica usando a linguagem VB .NET que mostra como deletar arquivos e diretórios enviando-o para a lixeira do windows (recycle bin). |
Para excluir um arquivo no Visual Basic podemos usar os recursos do namespace Microsoft.VisualBasic que contêm classes que oferecem suporte à compilação e à geração de código usando a linguagem Visual Basic.
Os namespaces filhos contêm tipos que fornecem serviços ao compilador do Visual Basic e tipos que incluem suporte a modelo de aplicativo do Visual Basic, My namespace, expressões lambda e conversão de códigos.
Dentre os namespaces filhos destacamos :
Microsoft.VisualBasic - contém tipos que oferecem suporte ao runtime do Visual Basic no Visual Basic;
Microsoft.VisualBasic.MyServices - contém tipos que oferecem suporte ao recurso My no Visual Basic;
Microsoft.VisualBasic.Logging - contém tipos que oferecem suporte aos objetos de logging no recurso My e fornece um ouvinte de log simples que direciona a saída para o arquivo de log;
Microsoft.VisualBasic.FileIO - contém tipos que oferecem suporte ao objeto FileSystem no recurso My no Visual Basic;
Deletar Arquivo
Deletar Diretório
Para excluir um diretório basta usar o método DeleteDirectory do objeto My.Computer.FileSystem que utiliza as mesmas opções e tem a seguinte sintaxe :
Public Shared Sub DeleteDirectory ( directory As String, showUI As UIOption, recycle As RecycleOption, onUserCancel As UICancelOption )
Neste artigo eu vou criar um projeto Windows Forms usando a linguagem VB .NET para excluir arquivos e diretórios usando os métodos DeleteFile e DeleteDirectory.
Recursos Usados:
Criando o projeto no Visual Studio Express 2013
A primeira coisa que vamos fazer é criar um novo projeto no Visual Studio Express 2013 for windows desktop com o nome de DeletarArquivos_Lixeira, o template Windows Forms Application e a linguagem VB .NET:
Será criado um projeto com um formulário form1.vb. Vamos incluir a partir da ToolBox os seguintes controles no formulário:
1 PictureBox - PictureBox1 - para exibir a imagem da lixeira
1 Label
1 TextBox - name = txtArquivoPasta
1 CheckBox - name = chkLixeira
1 Button - name = btnEnviarParaLixeira
Disponha os controles conforme o leiaute da figura abaixo:
Funciona assim:
O usuário informa o nome do arquivo ou do diretório que deseja excluir e marca a opção enviar para a lixeira se desejar enviar para a lixeira do windows.
Para executar a operação basta clicar no botão de comando - Enviar arquivo/diretório para a lixeira.
Implementando o código
Os namespaces usados no projeto e declarados no início do formulário form1.vb são:
Imports
Microsoft.VisualBasic.FileIOImports
System.IOImports
System.Security
Código do evento Click do botão de comando que irá efetuar a exclusão do arquivo ou diretório:
Private Sub btnEnviarParaLixeira_Click(sender As Object, e As EventArgs) Handles btnEnviarParaLixeira.Click
Dim arquivoDiretorioDeletar As String = ""
|
Este código utiliza as seguintes rotinas :
1- Método IsDiretorio() para verificar se o que o usuário informou é um arquivo ou um diretório. O código desta função é dado a seguir:
Public Function IsDiretorio(path As String) As Boolean
Try
Return ((File.GetAttributes(path) And FileAttributes.Directory) = FileAttributes.Directory)
Catch ex As Exception
Throw
End Try
End Function
|
Neste código estou usando o método GetAttributes() para obter o atributo do recurso informado e verificamos se o mesmo é um diretório retornado True.
2- Método EnviarArquivoParaLixeira() deleta um arquivo e o envia para a lixeira conforme a opção do usuário :
Private Sub EnviarArquivoParaLixeira(recurso As String)
Try
If chkLixeira.Checked = True Then
My.Computer.FileSystem.DeleteFile(recurso,
UIOption.AllDialogs,
RecycleOption.SendToRecycleBin)
Else
My.Computer.FileSystem.DeleteFile(recurso,
UIOption.AllDialogs,
RecycleOption.DeletePermanently,
UICancelOption.DoNothing)
End If
Catch ex As Exception
Throw
End Try
End Sub
|
3- Método EnviarDiretorioParaLixeira() deleta um diretório e o envia para a lixeira conforme a opção do usuário :
Private Sub EnviarDiretorioParaLixeira(recurso As String)
Try
If chkLixeira.Checked = True Then
My.Computer.FileSystem.DeleteDirectory(recurso,
UIOption.AllDialogs,
RecycleOption.SendToRecycleBin)
Else
My.Computer.FileSystem.DeleteDirectory(recurso,
UIOption.AllDialogs,
RecycleOption.DeletePermanently,
UICancelOption.DoNothing)
End If
Catch ex As Exception
Throw
End Try
End Sub
|
Executando o projeto e informando um recurso a excluir obtemos o seguinte resultado:
Verificando a lixeira do Windows podemos constatar que o diretório informado foi deletado e esta na lixeira :
Pegue projeto completo aqui:
DeletarArquivos_Lixeira.zip
Vede
quão grande amor nos tem concedido o Pai, que fôssemos chamados filhos de Deus.
Por isso o mundo não nos conhece; porque não o conhece a ele.
1 João 3:1
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
VB .NET - Copiando arquivos entre diretórios - Macoratti.net