La détermination filetype du fichier dans le dossier actif
-
26-09-2019 - |
Question
Question: Comment distinguez-vous entre les répertoires et programmation fichiers réguliers dans le dossier actif
Lorsque vous utilisez AssetManager pour accéder aux fichiers dans le dossier actif, il semble impossible de déterminer si un fichier est en fait un fichier ou un répertoire. Vous obtenez la liste des fichiers à partir de la méthode list
puis ouvrez le fichier en utilisant la méthode open
. Je pensais que peut-être en utilisant la méthode openFd
pour obtenir le descripteur de fichier actif (puis demander ultérieurement le descripteur de fichier normal) me fournir quelques informations. Mais demander le descripteur de fichier pour un résultat d'annuaire dans un IOException (ce qui est logique puisque ce que cela voudrait dire pour un répertoire d'avoir un descripteur de fichier ...?).
À l'heure actuelle, je me fie à ce que IOException (résultant de attemptng pour ouvrir un répertoire dans le dossier des actifs) afin de déterminer si un fichier est en fait un répertoire. (Ouverture d'un fichier régulier fonctionne très bien). Cela semble être une mauvaise idée. Toute autre suggestion de faire la distinction entre un fichier et un répertoire?
La solution
Je suis d'accord avec les commentaires sur votre poste. Mais pour répondre à votre question, faire un objet fichier pointé dans le répertoire des actifs
File root = new File("path/to/directory");
Ensuite, vous pouvez extraire tous les fichiers et répertoires sous comme celui-ci
File[] files = root.listFiles();
Une fois que vous avez la liste, vous pouvez déterminer ce qui est ce que l'aide File.isDirectory ().
En ce qui concerne la détermination des types de fichiers, qui est aussi simple que l'utilisation String.substring () pour saisir après la dernière période du personnage.
espérons que cette aide