Jump to content

[VB.NET] Probelemas com pastas


Miruh

Recommended Posts

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...

Link to comment
Share on other 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.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other 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

Link to comment
Share on other 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.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other 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.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.