web-dev-qa-db-fra.com

différences entre/sdcard/émulé/0 et/sdcard

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?

12
giozh

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

4
Kai

/ 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

0
duggu