Приведенный ниже код не создает папку на моем устройстве.

    String intStorageDirectory = context.getFilesDir().toString();
    File folder = new File(intStorageDirectory, "test");
    folder.createNewFile();;

Мне нужна папка, созданная для моего приложения для хранения мультимедиа, когда пользователь устанавливает его. Эта папка должна быть видна в проводнике. Как мне это сделать?

0
Hari Krishnan 20 Окт 2017 в 21:29

3 ответа

Лучший ответ

С помощью текущего фрагмента, который вы создали, вы также можете создать папку, создав файл, но текущим каталогом является базовая папка, getFilesDir () указывает внутреннее хранилище для вашего приложения, которое не видно и не доступно, если явно не объявлено. Вы можете создать папку и файл, создав с помощью new File().createNewFile() или создать только папку, используя mkdirs(), но вы не сможете отобразить ее с помощью приложения для просмотра файлов, и эта папка и файлы внутри нее будут удалены когда / если пользователь удаляет ваше приложение.

Для внешнего сохранения файлов (это не означает сохранение на SD-карту), вы можете создать каталог и файл с

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), folderName);
if (!mediaStorageDir.exists()) {
    mediaStorageDir.mkdirs()
}
File mediaFile = new File(mediaStorageDir.getAbsolutePath() + File.separator + fileName);

И вам нужен какой-то OutputStream для записи данных в этот файл.

Убедитесь, что вы спрашиваете <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> внутри вашего файла AndroidManifest.xml и спрашиваете разрешение на запись во время выполнения, если ваш android:targetSdkVersion="23" или выше

1
Thracian 21 Окт 2017 в 08:38
new File(context.getFielsDir(), "test").mkdirs();

CreateNewFile создает файл, а не папку. Использование mkdirs вместо mkdir гарантирует существование всех родителей. Также нет причин проходить строку, когда у вас уже есть файл.

0
Gabe Sechan 20 Окт 2017 в 18:45

Добавление folder.mkdirs (); должен работать вместо folder.createNewFile (); И не забудьте добавить разрешения.

Это создаст папку в вашем каталоге данных. И просто предложение, если вы хотите хранить мультимедиа в папке на SD-карте, возможно Environment.getExternalStorageDirectory () подойдет.

0
Shox 20 Окт 2017 в 19:01