• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Miruh

[VB.NET] Probelemas com pastas

11 mensagens neste tópico

Boas pessoal.. Estou com um problema num projecto que tenho que fazer para uma disciplina de programação... Gostava de saber se possível qual é a melhor forma de calcular o tamanho de  pastas ... por favor ajudme-me porque tenho que entregar o projecto  dentro de alguns dias.. desde já obrigado pela vossa atenção...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deduzo que estejas a falar de directórios do Windows, é isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim,  é isso se me poderes ajudar com isso agradecia-te .hasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se o Windows tem alguma API que te dê essa informação directamente.

Partindo do principio que não, e usando um algoritmo naive, eis o que tens de fazer:

0. Iniciar o contador do tamanho a zero.

1. Para um dado directório encontrar todos os ficheiros desse directório.

2. Somar o tamanho de cada ficheiro ao contador.

3. Para cada sub-directório do directório dado:

  3.1. Invocar esta função passando como argumento o sub-directório em questão.

  3.1. Somar ao contador o valor retornado pela função.

4. Retornar o valor do contador.

É uma coisa que se faz bastante bem em 5 linhas de Python, por exemplo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois... isso estava eu a tentar fazer mas não funciona correctamente será que m podes arranjar um exemplo de como posso fazer isso?

brigadao pela ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mostra lá o que já tens e partimos daí.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim directoria As String

        directoria = Txtcaminho.Text

        Dim varaux = New DirectoryInfo(directoria)

        Dim ficheiros As FileInfo()

        Dim i As Integer

        Dim soma, tamanhofich As Single

        ficheiros = varaux.getfiles("*.*")

        soma = 0

        If UBound(ficheiros) >= 0 Then

            For i = 0 To UBound(ficheiros)

                tamanhofich = Format(ficheiros(i).Length, "###,###") 'somar

                soma += tamanhofich

            Next

        End If

        txtresultado.Text = soma & "bytes"

    End Sub

End Class

fiz este programa para tentar calcular a soma dos ficheiros de uma pasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ve o exemplo deste URL

http://vbnet.mvps.org/index.html?code/fileapi/getdirectorysize.htm

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de mais, o que estás a obter com esse código e o que devias obter?

Esse código não faz drill down pelos sub-directórios.

A primeira coisa que deves fazer é factorizar isso.

O evento do botão deve chamar uma função que recebe apenas o path do directório e devolve um inteiro que é o tamanho desse directório.

Essa função deve funcionar da forma como expliquei no post acima.

Tens o código da soma dos tamanhos dos ficheiros, agora tens de saber encontrar os sub-directórios e invocar a mesma função com cada um desses nomes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ve o exemplo deste URL

http://vbnet.mvps.org/index.html?code/fileapi/getdirectorysize.htm

Excelente é mesmo isso.

Miruh, tens aqui a solução.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora