Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中生成目录_Java_Android - Fatal编程技术网

Java 在android中生成目录

Java 在android中生成目录,java,android,Java,Android,我正试图在android上的SD卡上建立一个名为“images”的目录。这是我的代码,但它不工作?谁能给我一些建议吗 File picDirectory = new File("mnt/sdcard/images"); picDirectory.mkdirs(); 更新:,谷歌通过标准编程语言文件操作限制了存储访问 对于仅针对Android 10(API 29)及以上版本的应用程序,您需要在Android清单文件中声明“requestLegacyExternalStorage=“true”,以

我正试图在android上的SD卡上建立一个名为“images”的目录。这是我的代码,但它不工作?谁能给我一些建议吗

File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();
更新:,谷歌通过标准编程语言文件操作限制了存储访问

对于仅针对Android 10(API 29)及以上版本的应用程序,您需要在Android清单文件中声明“requestLegacyExternalStorage=“true”,以使用基于编程语言的文件操作

==========

如果要确保正确找到SD卡的地址,则无法确保其始终位于任何特定地址。您将要执行以下操作

File directory = new File(Environment.getExternalStorageDirectory()+File.separator+"images");
directory.mkdirs();
让我知道这是否适合你

您还需要在
AndroidManifest.xml

您可以使用:

File directory = new File(Environment.getExternalStorageDirectory() + "/images");
directory.mkdirs();

值得注意的一点是,如果mkdirs()中的值总是为false,请尝试从pc上拔下设备,看看它是否可以创建文件夹。至少我尝试过,它对我有效,目前我正在寻找解决此问题的方法。

我使用此方法了解结果:

File yourAppDir = new File(Environment.getExternalStorageDirectory()+File.separator+"yourAppDir");

    if(!yourAppDir.exists() && !yourAppDir.isDirectory()) 
    {
        // create empty directory
        if (yourAppDir.mkdirs())
        {
            Log.i("CreateDir","App dir created");
        }
        else
        {
            Log.w("CreateDir","Unable to create app dir!");
        }
    }
    else
    {
        Log.i("CreateDir","App dir already exists");
    }

要创建特定的根目录及其子文件夹,我使用以下代码

String root = Environment.getExternalStorageDirectory().toString();//get external storage

File myDir = new File(root + "/grocery"+"/photo/technostark");//create directory and subfolder

File dir=new File(root + "/grocery"+"/data");//create subfolder

myDir.mkdirs();

dir.mkdirs();

要在sd卡内创建文件,必须使用环境。getExternalStorageDirectory()

下面是帮助您创建目录的两个重要参数 1.目录.mkdirs():

创建此文件命名的目录,创建缺少的父目录 目录,如有必要。 2.目录.mkdir():

创建由该文件命名的目录,假定其父目录存在

有关getExternalStorageDirectory()如何工作的详细信息,请参见这应该会有所帮助。
首先获取外部存储器的路径:

File root=Environment.getExternalStorageDirectory();
然后:


Environment.getExternalStorageDirectory()
不推荐使用。所以你应该用这个:

File directory = new File(this.getExternalFilesDir(null).getAbsolutePath() + "/YourDirectoryName");
directory.mkdirs();

嘿,再次感谢你所有的回答,你帮了我很大的忙,我很感激。。。所以我尝试了你的代码,它是一样的。我正在使用文件资源管理器查看文件夹是否已创建,但它没有显示是否已创建。我不确定我做错了什么。如果你做了
Log.d(“Peter的应用程序”,Environment.getExternalStorageDirectory()+File.separator+“images”)您在
logcat
中看到了什么??它是否输出
/mnt/sdcard/images
?它实际上不输出任何东西。。。这是否意味着我把我的代码放在了不运行的地方?我试着把它放在一个按钮下,也放在onCreate.awesome下!对不起,我花了很长时间才考虑许可可能是问题。你开玩笑吧,没有人会像你一样问一个问题。再次感谢!它在/files/文件夹中创建一个文件夹。它将在资源管理器中不可见。我认为它将是应用程序的内部?@MindRoasterMir是的,它是如何在API 29和30中的外部空间(下载等位置)创建文件夹的。谢谢。你尝试过这个答案吗:我要尝试一下。谢谢
File picDirectory = new File(root.getAbsolutePath(), "mnt/sdcard/images");
picDirectory.mkdirs();           
File directory = new File(this.getExternalFilesDir(null).getAbsolutePath() + "/YourDirectoryName");
directory.mkdirs();