我正在尝试在Android设备的SD卡上构建一个名为"images"的目录。以下是我的代码,但它没有起作用。有人可以给我一些建议吗?
File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();
更新:自Android 10、11存储升级以来,Google通过标准编程语言文件操作限制了存储访问。
针对仅目标为Android 10(API 29)及以上版本的应用程序,您需要在Android清单文件中声明“requestLegacyExternalStorage =“ true””以使用基于编程语言的文件操作。
<application
android:requestLegacyExternalStorage="true"
....>
==========
如果你想确保正确找到SD卡的地址,你不能确定它总是在特定的地址,那么你需要执行以下步骤!
File directory = new File(Environment.getExternalStorageDirectory()+File.separator+"images");
directory.mkdirs();
如果这个方法对你有用,请告诉我!
同时,您还需要在AndroidManifest.xml
文件中添加以下代码行:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我用这个来了解结果:
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");
}
File directory = new File(Environment.getExternalStorageDirectory() + "/images");
directory.mkdirs();
Environment.getExternalStorageDirectory()
方法已经废弃,因此您应该使用以下方法:
File directory = new File(this.getExternalFilesDir(null).getAbsolutePath() + "/YourDirectoryName");
directory.mkdirs();
值得注意的一件事是,如果您始终从mkdirs()中得到false,请尝试将设备从计算机上拔下来,看看它是否能够创建文件夹。至少我尝试过,对我有用,目前我正在寻找解决此问题的方法。
这应该会有所帮助。
首先获取外部存储的路径:
File root=Environment.getExternalStorageDirectory();
然后:
File picDirectory = new File(root.getAbsolutePath(), "mnt/sdcard/images");
picDirectory.mkdirs();
要在SD卡中创建文件,您需要使用Environment.getExternalStorageDirectory()
/**
* Creates a new directory inside external storage if not already exist.
*
* @param name The directory name
*/
public static void createNewDirectory(String name) {
// create a directory before creating a new file inside it.
File directory = new File(Environment.getExternalStorageDirectory(), name);
if (!directory.exists()) {
directory.mkdirs();
}
}
以下是两个重要的参数,可以帮助您创建目录: 1. directory.mkdirs():
创建由此文件命名的目录,如果需要则创建丢失的父目录。 2. directory.mkdir():
创建由此文件命名的目录,假设其父目录已存在。
如需了解更多有关getExternalStorageDirectory()工作原理的信息,请参见link
为了创建特定的根目录及其子文件夹,我使用以下代码
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();
Log.d("Peter's App", Environment.getExternalStorageDirectory()+File.separator+"images");
,在logcat
中会看到什么?它会输出/mnt/sdcard/images
吗? - Will Tate