Je voudrais énumérer mes dossiers dans ma carte externe avec une simple pression sur un bouton (emplacement actuellement codage en dur juste pour obtenir le roulement à billes)Impossible d'ouvrir le dossier sd
public void onClickBtn(View v) {
File f = new File("/storage");
File[] files = f.listFiles();
for (File inFile : files) {
if (inFile.isDirectory()) {
Log.i("is directory", "here: " + inFile);
}
}
}
Ceci produit dans mon logcat:
I/is directory: here: /storage/3164-6330
I/is directory: here: /storage/emulated
I/is directory: here: /storage/Private
I/is directory: here: /storage/enc_emulated
I/is directory: here: /storage/self
maintenant, je veux répéter le même processus, mais changer mon chemin vers «/stockage/3164-6330 » parce que je sais que ce où mes choses stocke les cartes SD
public void onClickBtn(View v) {
File f = new File("/storage/3164-6330");
File[] files = f.listFiles(); //will cause error here
for (File inFile : files) {
if (inFile.isDirectory()) {
Log.i("is directory", "here: " + inFile);
}
}
}
Mais je reçois dans mon logcat:
Caused by: java.lang.NullPointerException: Attempt to get length of null array at com.example.abc.MainActivity.onClickBtn(MainActivity.java:141)
qui est cette ligne:
for (File inFile : files) {
Est-ce que quelqu'un sait pourquoi je générer un tableau nul? J'ai les deux fichiers et dossiers dans mon/storage/3164-6330 chemin. Merci!
Avez-vous inséré la l'autorisation suivante dans le fichier manifeste de votre application: READ_EXTERNAL_STORAGE? – izakos
@ user3579978 oui, je l'ai fait –