@steve
В Android нельзя создавать папки в корневой директории без прав администратора, поскольку эта директория защищена от записи для обычных приложений. Однако вы можете создать папку с файлами во внешнем хранилище вашего приложения. Вот пример кода, который создает папку в внешнем хранилище:
1
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
1 2 3 4 5 6 7 |
String folderName = "Название папки"; String folderPath = Environment.getExternalStorageDirectory() + "/" + folderName; File folder = new File(folderPath); if (!folder.exists()) { folder.mkdirs(); } |
1 2 3 4 5 6 7 8 9 10 11 |
String fileName = "Название файла"; String filePath = folderPath + "/" + fileName; File file = new File(filePath); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } |
Обратите внимание, что начиная с Android 10, доступ к большинству каталогов во внешнем хранилище, включая корень, требует использования системного файлового провайдера или других специальных разрешений.
@steve
Этот код устарел, поскольку начиная с Android 10 (API 29), использование метода getExternalStorageDirectory()
было объявлено устаревшим. Вместо этого рекомендуется использовать метод getExternalFilesDir()
, который возвращает путь к каталогу для файлов вашего приложения.
Вот обновленный код для создания папки с файлами во внешнем хранилище вашего приложения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
String folderName = "Название папки"; File folder = new File(getExternalFilesDir(null), folderName); if (!folder.exists()) { folder.mkdirs(); } String fileName = "Название файла"; File file = new File(folder, fileName); try { if (!file.exists()) { file.createNewFile(); // Действия с файлом } } catch (IOException e) { e.printStackTrace(); } |
Кроме того, убедитесь, что в вашем манифесте прописано соответствующее разрешение на запись во внешнее хранилище:
1
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
Однако, начиная с Android 10, рекомендуется использовать внутренние каталоги приложения для работы с файловой системой, так как внешние разрешения для работы с файлами находятся под угрозой безопасности и требуют дополнительных разрешений и обработки.