在Android中创建多个目录

时间:2012-10-09 04:14:55

标签: java android

这是我的Android sdcard上的目录结构

 sdcard/alQuranData/Reader1/Surah

这是我制作目录的代码

File SDCardRoot = new File(Environment.getExternalStorageDirectory().toString() + "alQuranData/Reader1/Surah");
                Toast.makeText(getApplicationContext(), SDCardRoot.toString(), Toast.LENGTH_LONG).show();
                if (!SDCardRoot.exists()) {
                    Log.d("DIRECTORY CHECK", "Directory doesnt exist creating directory");
                    SDCardRoot.mkdir();
                }

现在我的alQuranData根目录中已创建sdcard。如果我只创建Reader1目录而不是它正常工作,但是何时添加Reader1/Surah而不是它没有创建。

我也试过了mkdirs(),但它不起作用。

3 个答案:

答案 0 :(得分:2)

您是否收到任何错误或异常?请尝试检查mkdirs()方法调用的返回值。还可以尝试以下代码:

File SDCardRoot = new File(Environment.getExternalStorageDirectory().toString() + "/alQuranData/Reader1/Surah");
                Toast.makeText(getApplicationContext(), SDCardRoot.toString(), Toast.LENGTH_LONG).show();
                if (!SDCardRoot.exists()) {
                    Log.d("DIRECTORY CHECK", "Directory doesnt exist creating directory");
                    SDCardRoot.mkdirs();
                }

另请检查您是否在清单文件中添加了以下权限:

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

我刚刚测试了以下代码,它正在我的最后工作:

File SDCardRoot = new File(Environment.getExternalStorageDirectory()
                .toString() + "/alQuranData/Reader1/Surah");
        Toast.makeText(getApplicationContext(), SDCardRoot.toString(),
                Toast.LENGTH_LONG).show();
        if (!SDCardRoot.exists()) {
            Log.d("DIRECTORY CHECK",
                    "Directory doesnt exist creating directory "
                            + Environment.getExternalStorageDirectory()
                                    .toString());
            boolean outcome = SDCardRoot.mkdirs();

            Log.d("DIRECTORY CHECK",
                    "outcome for " + SDCardRoot.getAbsolutePath() + "     "
                            + outcome);
        }

我已经在你的帖子中手动添加了alQaranData文件夹并添加了权限,它开始在我的工作结束。请检查此代码..

答案 1 :(得分:0)

使用此代码.....)

  private void createSdCatalogs(String str1){
    //str1 = "/alQuranData"
File folder = new File(Environment.getExternalStorageDirectory() + str1);
boolean success = false;
if (!folder.exists()) {
    success = folder.mkdir();
    Log.v("Adding line", "/");
}}
private void createSdCatalogs(String str2)   { 
//str2 = "/alQuranData/Reader1";
File folder1 = new File(Environment.getExternalStorageDirectory() + str2);
boolean success1 = false;
if (!folder1.exists()) {
    success1 = folder1.mkdir();
    Log.v("Adding line", "/");
}

}

答案 2 :(得分:0)

使用Java,您无法一次创建多个目录。您需要逐个声明文件夹名称并继续创建目录。所以先创建

  1. alQuranData
  2. alQuranData / Reader1 /
  3. alQuranData / Reader1 / Surah
  4. 使用您提供的相同代码。