Java 在Android中创建多个目录

Java 在Android中创建多个目录,java,android,Java,Android,这是我的Android SD卡上的目录结构 sdcard/alQuranData/Reader1/Surah 这是我制作目录的代码 File SDCardRoot = new File(Environment.getExternalStorageDirectory().toString() + "alQuranData/Reader1/Surah"); Toast.makeText(getApplicationContext(), SDCardRoot.toS

这是我的Android SD卡上的目录结构

 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();
                }
现在,
alquranda
已在我的
sdcard
根目录中创建。如果我只创建Reader1目录,那么它可以正常工作,但当添加
Reader1/Surah
时,它没有创建

我还尝试了
mkdirs()
,但它不起作用

使用此代码……)


使用Java不能一次创建多个目录。您需要逐个声明文件夹名称,然后继续创建目录。因此,首先创建

  • alQuranData
  • alQuranData/Reader1/
  • alQuranData/Reader1/Surah

  • 使用您提供的同一段代码。

    您是否收到任何错误或异常。请尝试检查
    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"/>
    

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

    谢谢您的帖子,但我将
    alQuranData/Reader1/Surah作为参数字符串传递。所以我需要一次创建这个文件夹,如果已经存在,那么跳过并创建下一个folderok,只需将所有字符串参数添加到FolderCreator,它可能是不同的方法。。。然后在每种方法中添加“return”方法,它将返回您创建的结果…您不理解我的问题。我把这个
    “alQuranData/Reader1/Surah”
    整个字符串作为一个参数传递给你,你得到问题的答案了吗?是的,在我的根目录中有
    sdcard
    当你使用上面的代码时会发生什么?当你使用mkdirs()时会发生什么在这段代码中?您是否检查了SDCardRoot文件obj值?它是否与预期的目录结构相同?创建目录后,我在
    Logcat
    中放了一条消息
    “目录创建成功”
    ,但当我查看
    sdcard
    时,它没有显示melet us,您能告诉我
    mkdirs()
    的功能吗?mkdirs()创建以抽象路径名命名的目录,包括任何必要但不存在的父目录。请注意,如果此操作失败,它可能已成功创建一些必要的父目录。因此,如果您发出此命令,它可能不会创建结束目录,而是在它之前创建一些不存在的目录。e、 g.如果您提供Alquranda/Reader1/Surah,则可能会创建Alquranda或Reader1(如果不存在)!您好,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);
            }