"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Estudo de caso: Encontrando o tamanho do diretório

Estudo de caso: Encontrando o tamanho do diretório

Publicado em 2024-08-09
Navegar:360

Métodos recursivos são eficientes para resolver problemas com estruturas recursivas. Os exemplos anteriores podem ser facilmente resolvidos sem usar recursão. Esta seção apresenta um problema difícil de resolver sem o uso de recursão. O problema é encontrar o tamanho de um diretório. O tamanho de um diretório é a soma dos tamanhos de todos os arquivos no diretório. Um diretório d pode conter subdiretórios. Suponha que um diretório contenha os arquivos f1, f2, ..., fm e os subdiretórios d1, d2, ..., dn, conforme mostrado na figura abaixo.

Image description

O tamanho do diretório pode ser definido recursivamente da seguinte forma:

tamanho(d) = tamanho(f1) tamanho(f2) ... tamanho(fm) tamanho(d1) tamanho(d2) ... tamanho(dn)

A classe File pode ser usada para representar um arquivo ou diretório e obter as propriedades de arquivos e diretórios. Dois métodos na classe File são úteis para este problema:

  • O método length() retorna o tamanho de um arquivo.
  • O método listFiles() retorna uma matriz de objetos File em um diretório.

O código abaixo fornece um programa que solicita ao usuário que insira um diretório ou arquivo e exibe seu tamanho.

Image description

Se o objeto arquivo representa um diretório (linha 20), cada subitem (arquivo ou subdiretório) no diretório é invocado recursivamente para obter seu tamanho (linha 23). Se o objeto file representa um arquivo (linha 26), o tamanho do arquivo é obtido e adicionado ao tamanho total (linha 27).

O que acontece se um diretório incorreto ou inexistente for inserido? O programa detectará que não é um diretório e invocará file.length() (linha 27), que retorna 0. Assim, neste caso, o método getSize retornará 0.

Para evitar erros, é uma boa prática testar todos os casos. Por exemplo, você deve testar o programa para uma entrada de arquivo, um diretório vazio, um diretório inexistente e um arquivo inexistente.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/paulike/case-study-finding-the-directory-size-2946?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3