Domanda

Domanda: Come si fa a livello di codice distinguere tra directory e file regolari nella cartella attivi

Quando si utilizza AssetManager per accedere ai file nella cartella attivi, sembra impossibile determinare se un file è in realtà un file o una directory. È possibile ottenere l'elenco dei file dal metodo di list e quindi aprire il file utilizzando il metodo open. Ho pensato che forse con il metodo openFd per ottenere il descrittore di file risorsa (e successivamente richiede il normale descrittore di file) mi avrebbe fornire alcune informazioni. Ma che richiede il descrittore di file di una directory determina un IOException (che ha senso dal momento che cosa significherebbe per una directory per avere un descrittore di file ...?).

Al momento sto contando su quel IOException (risultante da attemptng di aprire una directory nella cartella delle attività) al fine di determinare se un file è in realtà una directory. (Apertura di un file regolare funziona bene). Questo mi sembra una cattiva idea. Eventuali altri suggerimenti per distinguere tra un file e una directory?

È stato utile?

Soluzione

Sono d'accordo con i commenti sul tuo post. Ma per rispondere alla tua domanda, fanno un oggetto File indicò la directory degli asset File root = new File("path/to/directory");

Quindi è possibile estrarre tutti i file e le directory secondarie come questo File[] files = root.listFiles();

Una volta che avete l'elenco è possibile determinare che cosa è quello che utilizza File.isDirectory ().

Per quanto riguarda la determinazione dei tipi di file, che è semplice come utilizzare String.subString () per afferrare il carattere del successivo all'ultimo periodo.

Spero che questo aiuti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top