Comment puis-je obtenir le stockage externe du chemin?
Je suis en train d'écrire un fichier sur mon téléphone.
J'ai utilisé Environment.getDataDirectory()
à savoir le stockage interne et le chemin de l' Environment.getExternamStorageDirectory()
à savoir le stockage externe du chemin.
Mais quand j'utilise Environment.getExternalStorageDirectory()
tant que chemin d'accès, le fichier est créé dans de stockage interne. Et quand j'utilise Environment.GetDataStorage()
que le chemin d'accès, le fichier n'est pas créé. (Je ne suis pas sûr, mais je ne le trouve pas dans l'explorateur d'application, au moins.)
Je pense que mon téléphone de la mémoire de stockage interne est perçue comme stockage externe.(Dans mon cas, il a 32 GO d'espace de stockage)
Je veux savoir de stockage amovible(par exemple,micro SD card
) chemin d'accès. Que dois-je faire?
I want to know external storage(micro SD card) path.
Que vous feriez mieux de consulter comme stockage amovible. Tout le reste est interne ou externe de stockage.- Il est préférable pour vous de changer le titre de la question: Comment obtenir de stockage externe du chemin?. Il peut voter à votre question.
- merci pour les conseils!
- Je pense que vous devez vous référer à : [1]: stackoverflow.com/a/13648873/6127411 && [2]: stackoverflow.com/a/5695129/6127411
Vous devez vous connecter pour publier un commentaire.
À partir de la documentation officielle pour getExternalStorageDirectory()
Elle peut donc être différente de stockage intégré dans un dispositif.
Pour votre cas Vous pouvez utiliser les getExternalStoragePublicDirectory(java.lang.Chaîne de caractères)
Ou Si vous souhaitez que vos données soient supprimées chaque fois que l'utilisateur désinstalle votre application , vous pouvez utiliser getExternalFilesDir()
Que Ces fichiers sont internes à la des applications, et généralement pas visible à l'utilisateur des médias.
Il y a aussi quelques différences entre getFilesDir() et getExternalFilesDir()
Fichiers externes ne sont pas toujours disponibles: ils disparaissent lorsque l'utilisateur monte le stockage externe sur un ordinateur ou le supprime. Voir l'Api sur l'Environnement de l'information dans l'état de stockage.
De sécurité n'est pas appliquée avec ces fichiers. Par exemple, toute demande tenue WRITE_EXTERNAL_STORAGE peut écrire dans ces fichiers.
getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
mais télécharger chemin juste des changements de/storage/emulated/0
à/storage/emulated/0/Download
.(encore intégré dans le stockage) savez-vous pourquoi?Vous pouvez essayer ce code pour obtenir la carte sd externe (stockage) chemin d'accès:
Par exemple, la sdcard chemin
String
regarde comme ceci:Si ne fonctionne toujours pas, essayez de changer de
getPath()
avecgetAbsolutePath()
.Ensuite, ajouter l'autorisation:
Voici comment obtenir le répertoire de la carte sd selon @ShubhangMalviya réponse:
Je vous recommande d'utiliser
Environment.DIRECTORY_DCIM
, en raison de la plupart des gens ne jamais déplacer le répertoire de leurs DCIM (photo) chemin de sdcard pour de Stockage Interne. Généralement, toujours dans sdcard.getPath()
etgetAbsolutePath()
renvoie la même valeur avec justegetExternalStorage()
String
.