Bom dia Pessoal!
Tudo Bem?
Gostaria de realizar a leitura do nome de arquivo em uma pasta especifica.
segue o exemplo do código que fiz e os resultados obtidos:
import java.io.File;
public class App {
public static void main(String[] args) {
File arquivo = new File ("C:/Users/dbrunoro/Desktop/PastaCli/");
long tamanho = arquivo.length();
String caminho = arquivo.getAbsolutePath();
File[] teste = arquivo.listFiles();
String nome = arquivo.getName();
System.out.println (tamanho);
System.out.println(caminho);
System.out.println(teste);
System.out.println(nome);
}
}
O resultado que estou obtendo é esse no compilador:
Porem eu gostaria de ler as informações que aparecem nesta pasta:
Mais vc não setou nenhum arquivo no caminho, somente a pasta.
Acho que vc deveria ler o vetor de arquivos, já que ele contem os arquivos contidos no diretorio
Poderia me dar um exemplo?
Pois eu apliquei um vetor
import java.io.File;
public class App {
public static void main(String[] args) {
File arquivo = new File ("C:/Users/dbrunoro/Desktop/PastaCli/");
File[] arquivos = arquivo.listFiles();
long tamanho = arquivo.length();
String caminho = arquivo.getAbsolutePath();
File[] teste = arquivo.listFiles();
String nome = arquivo.getName();
System.out.println (tamanho);
System.out.println(caminho);
System.out.println(teste);
System.out.println(nome);
for (File arquivo1 : arquivos) {
System.out.println(arquivo1);
}
}
}
mas o resultado traz todo o caminho mais o nome do arquivo, porem não traz o tamanho:
Diego_Rodrigues_Brun:
for (File arquivo1 : arquivos) {
System.out.println(arquivo1);
}
o resultado traz todo o caminho mais o nome do arquivo, porem não traz o tamanho.
É que dentro desse laço você precisa mandar ele imprimir o tamanho.
File pasta = new File("C:/Users/dbrunoro/Desktop/PastaCli/");
FileFilter somenteArquivos = (arquivo) -> arquivo.isFile();
for (File arquivo : pasta.listFiles(somenteArquivos)) {
String nome = arquivo.getName();
long tamanho = arquivo.length();
String caminho = arquivo.getAbsolutePath();
System.out.println(nome);
System.out.println(tamanho);
System.out.println(caminho);
}
1 curtida
Boa Tarde staroski!
Tentei compilar o seu código, mas retorna o seguinte resultado:
tentei adaptar o código também, mas o resultado é este:
Estava pesquisando em um site e encontrei essas informações sobre o código:
sobre pegar o nome do arquivo ou diretório:
E sobre o tamanho do arquivo:
Não entendo o porque a função não traz a informação solicitada.
Não sei se é o correto olhar esta informações.
Adlizm
Abril 2, 2018, 8:13pm
#7
Não seria la no for
long tamanhoArquivo2 = listaArquivo.lengh();
Não poste imagens, ao invés disso copie e cole o seu código.
Não esqueça de usar o botão </> do fórum.
É que você está chamando o método length() em um objeto File que denota um diretório e não um arquivo, por isso que no meu exemplo eu uso um FileFilter para listar somente arquivos e ignorar diretórios.
Eu não tinha como adivinhar que sua versão do Java é anterior à 8.
É que a linha abaixo é uma expressão lâmbda:
FileFilter somenteArquivos = (arquivo) -> arquivo.isFile();
Ela equivale exatamente à esse código aqui:
FileFilter somenteArquivos = new FileFilter() {
@Override
public boolean accept(File arquivo) {
return arquivo.isFile();
}
};
Então é só você reescrever o seu código assim:
File pasta = new File("C:/Users/dbrunoro/Desktop/PastaCli/");
FileFilter somenteArquivos = new FileFilter() {
@Override
public boolean accept(File arquivo) {
return arquivo.isFile();
}
};
for (File arquivo : pasta.listFiles(somenteArquivos)) {
String nome = arquivo.getName();
long tamanho = arquivo.length();
String caminho = arquivo.getAbsolutePath();
System.out.println(nome);
System.out.println(tamanho);
System.out.println(caminho);
}
1 curtida