在/ sdcard / Pictures中创建目录

时间:2017-02-09 19:20:36

标签: java android file

我正在尝试使用以下代码在/ storage / emulated / 0 / Pictures下创建目录:

        File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath() + "/newDirectory");

        boolean success = false;
        if(!outputDir.exists()){
            success = outputDir.mkdirs();
        }
        if(success == true){
            Log.d(TAG, "file created");
        }

我无法理解错误是什么,因为我在此阶段没有收到任何错误或异常,但是没有创建目录。可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

 String folder_root = "Pictures";

File f = new File(Environment.getExternalStorageDirectory(), folder_root);
if (!f.exists()) {
    f.mkdirs();
}

File f1 = new File(Environment.getExternalStorageDirectory() + "/" + folder_root, "yourDirectoryName");
if (!f1.exists()) {
    f1.mkdirs();
}

在您的清单添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

对于Api> 23,您还需要运行时权限

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);

答案 1 :(得分:0)

您如何尝试记录file.getAbsolutePath();以查看路径是否正确?

其次,您的代码不完整,因为您的第一行是错误。

试试这个:

File directory = new File(Environment.getExternalStorageDirectory(Environment.DIRECTORY_PICTURES)+File.separator+"pictures");
directory.mkdirs();

确保您的权限已设置。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />