Pergunta

Pergunta: Como você distingue programaticamente entre diretórios e arquivos regulares na pasta Ativos?

Ao usar o AssetManager para acessar arquivos na pasta Ativos, parece impossível determinar se um arquivo é de fato um arquivo ou um diretório. Você obtém a lista de arquivos do list método e depois abra o arquivo usando o open método. Eu pensei talvez usar o openFd Método para obter o descritor de arquivo de ativos (e depois solicitar posteriormente o descritor de arquivo normal) me forneceria algumas informações. Mas solicitar ao descritor de arquivo um diretório resulta em uma ioexception (o que faz sentido, pois o que significaria para um diretório ter um descritor de arquivo ...?).

Atualmente, estou confiando nessa ioexception (resultante da tentativa de abrir um diretório na pasta Ativos) para determinar se um arquivo é de fato um diretório. (Abrir um arquivo regular funciona muito bem). Parece uma má ideia. Alguma outra sugestão para distinguir entre um arquivo e um diretório?

Foi útil?

Solução

Eu concordo com os comentários em sua postagem. Mas para responder à sua pergunta, faça um objeto de arquivo apontado para o diretório de ativosFile root = new File("path/to/directory");

Então você pode extrair todos os seus sub -arquivos e diretórios como esteFile[] files = root.listFiles();

Depois de ter a lista, você pode determinar o que é o que usa o arquivo.isdirectory ().

Quanto à determinação dos tipos de arquivos, isso é tão simples quanto usar string.substring () para agarrar o personagem após o último período.

espero que isto ajude

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top