Je vais être en colère contre un problème étrange. Si je crée un dossier dans mon code en tant que
directory_path = Environment.getExternalStorageDirectory()
+ "/" + context.getResources().getString(R.string.app_name);
directory = new File(directory_path);
if (!directory.exists()) {
directory.mkdirs();
}
un nouveau dossier est créé dans/sdcard /. Si j'essaie d'imprimer sur la variable logcat directory_path, le chemin est différent: /storage/emulated/0/and si je vais dans ce chemin, j'ai trouvé un autre dossier portant le même nom que celui créé sur/sdcard /. C’est un problème pour moi car lorsque j’essaie d’écrire des données dans ce dossier, il se trouve dans celui qui se trouve sur/storage/emulated/0, et l’autre (c’est le dossier que je veux utiliser) reste vide. Pourquoi?
Avez-vous essayé de relire les données?/storage/emulated/0/est le nouveau chemin introduit dans JB pour prendre en charge plusieurs utilisateurs sur la tablette. Mais tant que vous accédez à des fichiers externes à l’aide de Environment.getExternalStorageDirectory()
, leur emplacement importe peu.
Voici quelques informations supplémentaires: https://Android.stackexchange.com/questions/35541/why-did-sdcard-turn-into-sdcard-0-with-4-2
/ storage/émulé/0 /: à ma connaissance, il s'agit du "MMC émulé " ("partie propriétaire"). C'est généralement l'interne. Le "0" représente Pour l'utilisateur ici, "0" est le premier utilisateur, à savoir le propriétaire du périphérique. Si vous Créez des utilisateurs supplémentaires, ce nombre sera incrémenté pour chacun.
/ storage/emulated/legacy/comme avant, mais en pointant sur la partie de utilisateur actif (pour le propriétaire, il s'agirait d'un lien symbolique vers
/ stockage/émulé/0 /). Donc, ce chemin devrait amener chaque utilisateur à sa "partie" .
/ sdcard /: Selon un commentaire de Shywim, il s'agit d'un lien symbolique vers ...
/ mnt/sdcard (Android <4.0)
/ stockage/sdcard0 (Android 4.0+)
Pour plus de détails, vous pouvez visiter stackexchange