将文件存储到设备的最佳实践

时间:2017-08-11 07:15:00

标签: android android-6.0-marshmallow android-storage

目前 我正在存储我的文件(图像/视频):

File directoryToStore;
directoryToStore = getBaseContext().getExternalFilesDir("MyImages");

这将返回此路径:

/storage/emulated/0/Android/data/pacageName/files/MyImages/

现在,我想将文件存储在根目录/storage/emulated/0/MyImages/中。我试过这样做:

File directoryToStore;
directoryToStore = new File(Environment.getExternalStorageDirectory(), "MyImages");

在Marshmallow之前的设备上运行时效果非常好,但在Marshmallow中找不到文件。

我的问题

我应该如何/可以在根目录中存储文件,以便在所有API中找到该文件?

1 个答案:

答案 0 :(得分:0)

首先,请确保您的Android Manifest文件中有权限,因为您正试图将文件保存到设备的外部存储中。

config.Routes.MapHttpRoute(
    name: "Api",
    routeTemplate: "{namespace}/api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

其次,检查是否为您的应用程序授予了存储权限(当您在Marshmallow或更高版本的OS版本设备上执行时)。

最后,确保是否有名为“MyImages”的目录并检查它是否为chmod。如果目录不存在,请创建它(mkdir()将在您的示例中创建目录),然后尝试再次保存文件。