如何在Android 4.4.2(Kitkat)API级别19中的外部SD卡中创建文件夹

时间:2015-10-10 08:08:22

标签: android directory android-sdcard

我尝试在android 4.4.2版本的SD卡中创建一个文件夹。 我尝试以下代码

 String dirName="Test";
   File file = new File(Environment.getExternalStorageDirectory(), dirName);
        boolean status = file.mkdir();
                    if (status)
                        Toast.makeText(MainActivity.this,
                                "Directory created successfully", Toast.LENGTH_SHORT)
                                .show();
                        else
                            Toast.makeText(MainActivity.this, "Directory create failed",
                                    Toast.LENGTH_SHORT).show();

但它会在内部存储空间中创建一个文件夹。

我尝试了另一个代码

  String path=System.getenv("SECONDARY_STORAGE");
                File file=new File(path +"/Test123");
                file.mkdir();

它在Android 4.1中的外部SDCARD中创建了一个文件夹,但在android 4.4.2

中没有

那么如何在android 4.4.2中的外部SD卡中创建一个文件夹?         如果有人知道请帮助我..

提前致谢

2 个答案:

答案 0 :(得分:2)

文档说明了

  

应用程序不应直接使用此顶级目录   以避免污染用户的根命名空间。任何文件   私有应用程序应放在由返回的目录中   Context.getExternalFilesDir,系统将负责处理   删除应用程序是否已卸载。

其中top-level directory表示Enviroment.getExternalStorageDirectory()

的返回值

使用getExternalFilesDir,您将拥有

 File file = new File (getExternalFilesDir(null), dirName);
 if (!file.exists()) {
   boolean status = file.mkdir();
   if (status) {
        Toast.makeText(MainActivity.this, "Directory created successfully", Toast.LENGTH_SHORT).show();
   } else {
        Toast.makeText(MainActivity.this, "Directory create failed", Toast.LENGTH_SHORT).show();
   }
 }

你也应该知道mkdir()如果目录已经存在则返回false

答案 1 :(得分:1)

这应该是不言自明的。

String folderName = "NewFolder";

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

确保您在清单中添加了WRITE_EXTERNAL_STORAGE权限。

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

Dhaval

的信用