【问题标题】:How to Create a folder in external sdcard in Android 4.4.2(Kitkat) API level 19如何在 Android 4.4.2(Kitkat) API 级别 19 中的外部 SD 卡中创建文件夹
【发布时间】:2016-01-08 04:49:33
【问题描述】:

我尝试了很多在 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 的 External SDCARD 中创建一个文件夹,但在 android 4.4.2 中没有

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

提前致谢

【问题讨论】:

标签: android directory android-sdcard


【解决方案1】:

文档指出

应用程序不应该直接使用这个顶级目录,在 为了避免污染用户的根命名空间。任何文件 应用程序的私有应放置在由返回的目录中 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

【讨论】:

  • 它在内部存储中的应用程序文件夹中创建文件夹。
  • 确实如此,根据文档,这就是您应该使用的文件夹
  • 它创建一个文件夹,但在内部存储中。不在外部 SD 卡中。
  • 它在/sdcard/Android/data中创建一个文件夹
  • 它在 /sdcard/android/data/ 中创建一个文件夹
【解决方案2】:

这应该是不言自明的。

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

【讨论】:

  • 您发布了与 OP 相同的代码。即使没有检查结果。那么这有什么帮助呢?
  • 已经用过这段代码@greenapps。已经工作了。编辑以给予适当的信任。
  • 我已经在 mwnifest 文件中添加了这个权限。但它不会在 android 4.4.2 中创建文件夹
猜你喜欢
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2012-09-20
  • 1970-01-01
  • 2016-12-21
相关资源
最近更新 更多