#android #filesystems #directory #createfile
#Android #файловые системы #каталог #создать файл
Вопрос:
Я работаю над программой для редактирования видео и довольно новичок в Android и Java. Чего бы я хотел, так это когда пользователь нажимает кнопку «создать новый проект», появляется диалоговое окно с запросом у пользователя названия проекта. Я отключил эту часть, но затем я хочу, чтобы, когда пользователь нажимает «ok» в этом диалоговом окне, мой код принял имя и создал каталог внутри моих данных / data file для моего проекта, а внутри этого каталога создал папки с названиями от 1 до 5 или более. Я действительно не знаю, как это сделать, поэтому буду признателен за любой вклад.
Ответ №1:
Как предложил сгарман, вы можете использовать SD-карту (и я думаю, что это лучше), но если вы хотите использовать каталог вашего приложения, вы можете получить его, вызвав getFilesDir()
из вашей активности, он вернет File
объект /data/data/your.app/files
, тогда вы можете получить путь и добавить новый каталог:
String dirPath = getFilesDir().getAbsolutePath() File.separator "newfoldername";
File projDir = new File(dirPath);
if (!projDir.exists())
projDir.mkdirs();
...
Комментарии:
1. Спасибо. Что вы думаете по этому поводу
File projDir = new File(getFilesDir(), "newfoldername"); File projDir = new File(dirPath); if (!projDir.exists()) projDir.mkdirs();
Не должно ли это сработать?2. Что делать, если в устройстве нет SD-карты?
Ответ №2:
Правильный способ получить каталог, который для основного владельца устройства находится под Android /data / packagename на внешнем хранилище, — это просто вызвать getExternalFilesDir() в доступном контексте.
Это,
File folder = context.getExternalFilesDir("YOUR FOLDER NAME");
А также вы должны добавить разрешение на запись в манифест
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Ответ №3:
Ознакомьтесь с методом getFilesDir, который вернет каталог, который вы ищете. Вероятно, вы также захотите создать подкаталог.
Ответ №4:
Вы должны попробовать это, чтобы создать папку в Android/data /data/your.app /. используйте это в вашем onCreate
методе.
File file = this.getBaseContext().getExternalFilesDir("yourFolderName");
if (!file.exists())
file.mkdir();
Ответ №5:
Этот метод работает в моем приложении. Я использую все описанные выше методы, которые здесь не работают
File файл= новый File(Environment.getExternalStorageDirectory().toString() «/Android/data/com.package_name/your_folder_name»)
этот метод используется для создания папки в каталоге данных вашего приложения, к этой папке изображения и видео не доступны в галерее, но доступ ко всем файлам в вашем приложении осуществляется вручную, используя путь к папке