Pergunta

Eu tenho uma pergunta muito rápido. Meu programa realmente faz o download de um arquivo zip, em seguida, extrai-lo para o seu desktop. Mas eu preciso de um recurso de desinstalação para ele, que é basicamente apagar várias pastas e contendo arquivos. Como posso fazer isso no vb.net?

Foi útil?

Solução

Se todas as suas pastas estão contidas em uma única pasta, deve ser bastante simples.

Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

Isso vai excluir seu diretório raiz e todos os diretórios e arquivos abaixo dele. Você poderia simplesmente chamar isso várias vezes se seus arquivos e diretórios não são todos em um diretório raiz única como "YourPath" no exemplo. Isto irá poupá-lo de ter que remover cada arquivo individualmente.

Outras dicas

A unidade NET IO tem dois comandos que deve deixá-lo fazer o truque:

System.IO.Directory.GetDirectories("C:\\Program Files\\Your Directory\\*.*");
System.IO.Directory.GetFiles("C:\\Program Files\\Your Directory\\*.*");

Eu ia escrever um método que leva o nome de um diretório e usa o "GetFiles" de rotina para obter todos os arquivos e excluí-los usando System.IO.File.Delete (caminho) em um loop foreach. Em seguida, execute um loop foreach sobre o resultado das GetDirectories () comando chamar a função recursiva.

Update: Steve Danner aponta que o namespace System.IO.Directory tem um método Delete para que você não precisa ir através dos laços que eu falar aqui. Sua resposta é o caminho certo e deve ser votado até Mine, neste momento, é mais uma curiosidade (embora obrigado à pessoa que me deu uma upvote; 0)..

O seu está procurando DirectoryInfo, usá-lo como este:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top