Java 在android中生成目录
我正试图在android上的SD卡上建立一个名为“images”的目录。这是我的代码,但它不工作?谁能给我一些建议吗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”,以
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();