Android Oreo(API 26)-在外部存储中创建目录 [英] Android Oreo (API 26) - Create dir in external storage

查看:109
本文介绍了Android Oreo(API 26)-在外部存储中创建目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在开发在牛轧糖上创建的应用程序,该应用程序在外部存储中创建了一个目录.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆