Я пытаюсь создать каталог под названием "images" на SD-карте на Android. Это мой код, но он не работает? Может ли кто-нибудь дать мне совет?
File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();
Я пытаюсь создать каталог под названием "images" на SD-карте на Android. Это мой код, но он не работает? Может ли кто-нибудь дать мне совет?
File picDirectory = new File("mnt/sdcard/images");
picDirectory.mkdirs();
Вы хотите быть уверены, что правильно находите адрес своей SDCard, вы не можете быть уверены, что он всегда находится на каком-либо конкретном адресе. Вы захотите сделать следующее!
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();
Одна вещь, которую стоит отметить, это если вы всегда получаете ложь от mkdirs(), попробуйте отключить устройство от компьютера и посмотрите, может ли он создавать папки. По крайней мере, я попробовал, это сработало для меня, в настоящее время я ищу способы решить эту проблему.
Чтобы создать конкретный корневой каталог и его подпапку, я использую этот код
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-карты, вы должны использовать 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(), см. ссылка