terça-feira, 24 de março de 2015

2015/1-OdA: Arquivos: Exercício em sala 2015.03.16

Problema
Entrada: diretorio definido pelo usuario
Saida: informar o numero de arquivos dentro do diretorio

Solução
1) Solicitar o diretorio do usuario
2) Se o diretorio nao existir
2.1) Mostrar mensagem de erro
3) Senao
3.1) Acessar os metadados do diretorio (classe File)
3.2) Se o arquivo nao for um diretorio
3.2.1) Mostrar um erro ao usuario
3.3) Senao
3.3.1) Obter a listagem dos arquivos no diretorio
3.3.2) Exibir a quantidade de arquivos existentes

Código Fonte em Java

import java.io.*;
import java.util.*;

public class NumeroArquivos{

  public static void main(String [] args){
    Scanner sc = new Scanner(System.in);
  System.out.println("Digite um caminho de diretorio");
  String dir = sc.nextLine();
  File arq = new File(dir);
  if (!arq.exists()){
    System.out.println("ERRO: caminho nao existe");
  } else {
    if (arq.isFile()){
      System.out.println("ERRO: caminho nao eh um diretorio");
    } else {
      int num = arq.listFiles().length;
    System.out.println("Número de arquivos: " + num);
    }
  }
  }

}

Problema 2
Entrada: diretorio definido pelo usuario
Saida: informar o arquivo de maior tamanho no diretório

Código Fonte em Java

import java.io.File;
import java.util.Scanner;


public class NumeroArquivos {

  public static void main(String [] args){
      Scanner sc = new Scanner(System.in);
    System.out.println("Digite um caminho de diretorio");
    String dir = sc.nextLine();
    File arq = new File(dir);
    if (!arq.exists()){
      System.out.println("ERRO: caminho nao existe");
    } else {
      if (arq.isFile()){
        System.out.println("ERRO: caminho nao eh um diretorio");
      } else {
        File[] listFiles = arq.listFiles();
        int num = listFiles.length;
      System.out.println("Número de arquivos: " + num);
      long tam = 0;
      String maiorArquivo = null;
      for (File f: listFiles){
        System.out.println(f);
        if (f.isFile() && f.length() > tam){
          tam = f.length();
          maiorArquivo = f.getAbsolutePath();
        }
      }
      System.out.println("Maior arquivo: " + maiorArquivo);
      System.out.println(tam + " bytes");
      }
    }
    sc.close();
    }

}

Nenhum comentário:

Postar um comentário