Android Oreo(API 26)-在外部存储中创建目录 [英] Android Oreo (API 26) - Create dir in external storage
问题描述
我一直在开发在牛轧糖上创建的应用程序,该应用程序在外部存储中创建了一个目录.
I've been developing an app on nougat that creates a directory in the external storage.
我以前是这样做的:
final File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Chords/Processed Audio");
dir.mkdirs();
此代码似乎不适用于API 26(Android Oreo).目录未创建.
This code does not seem to work on API 26 (Android Oreo). The directory is not created.
我如何实现相同的目标,最好能在从API 21到API 26的所有android版本上正常工作?
推荐答案
在运行Android 8.0的Nexus 5X上运行现有代码没有问题.使用adb shell ls /storage/emulated/0
,我看到了Chores/
,在里面看到了Processed Audio/
.这是针对具有WRITE_EXTERNAL_STORAGE
权限(包括运行时权限)的应用的.
I have no problems running your existing code on a Nexus 5X running Android 8.0. Using adb shell ls /storage/emulated/0
, I see Chores/
, and inside there I see Processed Audio/
. This is for an app with WRITE_EXTERNAL_STORAGE
permission, including runtime permissions.
话虽如此,理想情况下,不要使用字符串串联来创建File
对象.而是使用:
That being said, ideally, do not use string concatenation to create File
objects. Instead, use:
final File dir = new File(new File(Environment.getExternalStorageDirectory(), "Chords"), "Processed Audio");
这篇关于Android Oreo(API 26)-在外部存储中创建目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!