Android mkdir не создает папку

Не удается создать папку mkdir в Android

У меня возникли проблемы с запуском функции Mkdir(). Что же мне делать? Я уже добавил разрешение на чтение/запись:

Ниже приведен мой фрагмент кода:

2 ответа

В моем репозитории my SVN я пытаюсь создать tags/branches/trunk. SVN1:/SVN/repo/android$ svnadmin create tempo SVN1:/SVN/repo/android/tempo$ svn mkdir trunk svn: ‘.’ is not a working copy Я не могу избавиться от этой ошибки. Я могу создать папку, сделав mkdir trunk , но это то же самое?

Я хотел бы создать папку под названием hello и подпапку, расположенную внутри hello под названием world . Я пробовал mkdir $HOME/hello/world , но он не работает, говоря, что он не может создать каталог, так как такого файла или каталога не существует. Если я попробую $HOME/hello , то смогу создать.

mkdir не создаст полный путь. Для этого вы должны использовать mkdirs

Создает каталог с именем этого абстрактного пути, включая все необходимые, но несуществующие родительские каталоги.

Создает каталог, названный этим файлом, предполагая, что его родители существуют. Используйте mkdirs(), если вы также хотите создать отсутствующих родителей.

Обратите внимание, что этот метод не выдает IOException при сбое. Абоненты должны проверить возвращаемое значение. Обратите также внимание, что этот метод возвращает false, если каталог уже существовал. Если вы хотите узнать, существует ли каталог при возврате, либо используйте (f.mkdir() || f.isDirectory()), либо просто проигнорируйте возвращаемое значение из этого метода и просто вызовите isDirectory(). Возвращается

проверьте стоимость возврата, чем вы получите надлежащую причину проблемы.

Похожие вопросы:

Я пытаюсь создать папку на внешнем накопителе, но безуспешно. Хотя мне удалось создать папку в каталоге моего приложения, я не могу сделать то же самое для внешнего хранилища, и я также получаю.

У меня проблема с Ubuntu 11.04. Когда я пытаюсь создать новую папку, она показывает ошибку mkdir: не удается создать каталог ‘new_folder’: файловая система только для чтения. У меня нет доступа на.

Я хочу создать папку с именем пользователя в /tmp/vnc/, я могу создать эту папку в командной строке с perl -e ‘mkdir($ENV)’ , но для следующего кода не может работать. chdir (/tmp/vnc) or die.

В моем репозитории my SVN я пытаюсь создать tags/branches/trunk. SVN1:/SVN/repo/android$ svnadmin create tempo SVN1:/SVN/repo/android/tempo$ svn mkdir trunk svn: ‘.’ is not a working copy Я не могу.

Я хотел бы создать папку под названием hello и подпапку, расположенную внутри hello под названием world . Я пробовал mkdir $HOME/hello/world , но он не работает, говоря, что он не может создать.

Я пытаюсь создать папку для моего пользователя после того, как он зарегистрировался, однако, хотя нет никакой ошибки с синтаксисом, он все равно не хочет создавать папку. Нужно ли мне редактировать.

Я пытаюсь создать новую папку для SCP моего скрипта python, чтобы я мог запустить его на экземпляре AWS EC2. Итак, у меня есть SSH и он подключен к моему экземпляру. Я попробовал ls ничего не.

Я пытаюсь создать Dockerfile для приложения, которое я хочу запустить внутри docker. Я запускаю приложение с помощью команды активатор run. и эта команда находится внутри файловой структуры.

Я создаю папку с mkdir() в php, но я не знаю, как создать папку в CodeIgniter. Любой может сказать мне, как создать это с помощью функции mkdir().

Читайте также:  Call record для андроид

Я хочу создать папку в определенном пути, используя mkdir .

Источник

Android mkdir () возвращает false, не создает папку

Это сводит меня с ума. Я пробовал все виды синтаксиса, но оба mkdir() и mkdirs() возвращают false.

Мой код:

Я получал и IOException: No such file or directory при попытке создать файл. Часть logcat показала мне, что каталог не был создан:

И что напечатано:

Я дважды проверил разрешения и поместил их в нужное место. Кажется, я где-то читал, что после KitKat нам не разрешается писать во внешнее хранилище, но пока не нашли решения.

4 ответа

Для создания каталогов внешнего хранилища требуется разрешение WRITE_EXTERNAL_STORAGE; без этого разрешения попытки записи во внешнее хранилище не удастся. Кроме того, не все каталоги обязательно доступны для записи; используйте getExternalStoragePublicDirectory (), чтобы получить каталог с общим доступом для записи (другие внешние каталоги могут быть доступны только для чтения). Однако, если целью записи во внешнее хранилище является совместное использование файла с другими приложениями, вам следует настоятельно рассмотреть возможность использования FileProvider вместо этого (см. Также Настройка общего доступа к файлам); с этой стратегией ваше приложение хранит файлы в своих собственных внутренних каталогах для конкретных приложений, но затем позволяет выборочно делиться этими файлами с другими приложениями через поставщика контента. Эта стратегия обеспечивает большую безопасность файлов, а также позволяет вам обеспечить больший контроль доступа при чтении / записи файлов.

Поскольку вы говорите, что у вас уже есть необходимое разрешение *, скорее всего, вы ошибаетесь в вызове toString() . Нет гарантии, что метод toString() для файла вернет его полный путь. Используйте getPath() или getAbsolutePath() при их объединении. При выборе записи на внешнее хранилище также рекомендуется сначала проверить его состояние; в некоторых случаях внешнее хранилище может быть извлечено / размонтировано и недоступно.

* Вы должны проверить это с помощью ContextCompat.checkSelfPermission (). Вы должны добавить вызов к requestPermissions (), если разрешения отсутствуют.

Еще одна возможная причина: Environment.getExternalStorageDirectory () устарела на уровне API 29

Также, если вы тестируете на android 6.0 + api 23, есть изменения в правах, вы должны запросить некоторые из них во время выполнения, объявление манифеста игнорируется)

Применимо, только если ваша targetSdkVersion 29

Environment.getExternalStorageDirectory () не рекомендуется на уровне API 29.

Чтобы получить ту же функциональность, используйте эту строку

Если вы проверили все возможные ошибки, попробуйте это исправить.

Источник

Mkdirs(), Android, создание папок

В познании новой сферы разработки(Android) у меня возникли проблемы с созданием новых каталогов и файлов на съемном носителе. Перерыл много литературы, форумов и всевозможных источников, но проблема все же осталась.
У меня не осталось вариантов как только обратиться сюда. Помогите пожалуйста!

Собственно в чем проблема: Не могу создать новую папку или файл на съемном носителе(в народе SD карта).

Я смог получить программно полный путь к своей карте на телефоне, но записать не смог, хотя на сам телефон(на внутреннюю память) все прекрасно записывается.

В манифесте я все указал для чтения и редактирования данных на SD:

Я так считаю, что я что-то намудрил в манифестит или что-то не добавил(видимо не откыл права для съемного носителя, но как это сделать? О_о )
Работаю в Android Studio(Проект создаю для Android 4.0.1 и выше).
Тесты делаю на реальном устройстве: LG Spirit, Android 5.0.1

Прикрепляю так же файл с исходниками.

Я нуждаюсь в вашей помощи и буду очень благодарен, за советы и подсказки.

Заранее спасибо большое, что уделили мне время!=)

Вложения

MyApplication.7z (4.38 Мб, 1 просмотров)

Просмотр системных папок Android на PC
Как можно просмотреть системные папки Android, на PC? Т.е. с root правами

Читайте также:  Блокировка экрана при разговоре android xiaomi

Создание папок
Проблема такова: мне нужно на диске C создать папку MorzeHub при первом запуске программы. Внутри.

Создание папок
Вот функция: if (!is_dir(‘../images/photos/’.$section)) < .

Вот весь лог. Я выделил красным, где у меня вылетает ошибка.(на строчке 95, если смотреть по java коду)

нет, не помогло.
пробовал отключать устройство от USB — тоже ничего не записывает на SD=(

Добавлено через 10 минут
Так же пробовал по этому же учебнику: http://developer.android.com/i. files.html

Так же ничего не получилось.

Добавлено через 5 минут
Так же попробовал на планшете: Lenovo Tablet 2, Android 4.4.2
Результат такой же=(

Источник

Android mkdir() возвращает false, не создает папку

Это сводит меня с ума. Я пробовал всевозможные варианты, но как mkdir() и mkdirs() возвращать false.

Мой код :

Я получал и IOException: No such file or directory при попытке создать файл. Часть logcat показала мне, что никакой каталог не был создан:

А что печатается:

Я дважды проверил разрешения и поместил их в нужное место. Кажется, я где-то читал, что после KitKat нам не разрешают писать во внешнее хранилище, но пока не нашел решения.

4 ответа

Я не могу понять, почему мой скрипт не создает папку из моих входных данных. Вот мой код . #!/bin/bash echo Please enter a foldername to store archives in read $2 echo ++++++++++++++++++++++++++ mkdir $2 echo ++++++++++++++++++++++++++

Предположим, у нас есть следующий древовидный список: www _ \_sources_ \ \_dir1 \ \_dir2 \ \_file \_cache Я пытаюсь рекурсивно разобрать каждый файл в “sources” и скопировать его в папку “cache”, сохранив иерархию, но в моей функции mkdir() создает файл вместо каталога. За пределами функции.

Применимо только в том случае, если ваш targetSdkVersion 29

Environment.getExternalStorageDirectory() устарел в API уровне 29.

Чтобы получить ту же функциональность используйте эту строку

Если вы проверили все возможные ошибки, то попробуйте это исправить.

Поскольку вы говорите, что у вас уже есть необходимый permission*,, скорее всего, вы ошибаетесь в вызове toString() . Нет никакой гарантии, что метод toString() в файле вернет его полный путь. Используйте getPath() или getAbsolutePath() при их объединении. При выборе записи во внешнее хранилище также рекомендуется сначала проверить его состояние ; в некоторых случаях внешнее хранилище может быть извлечено/размонтировано и недоступно.

*You должен проверить это с помощью ContextCompat.checkSelfPermission() . Вы должны добавить вызов в requestPermissions() , если разрешения отсутствуют.

Я с ума схожу от этого: Log.d(STATE, Environment.getExternalStorageState()); File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), work_data); Log.d(PATH, f.getAbsolutePath()); if (!f.exists()) < Log.d(MAKE DIR, f.mkdirs() + ); >Выходной журнал выглядит.

Я пытаюсь создать папку для моего пользователя после того, как он зарегистрировался, однако, хотя нет никакой ошибки с синтаксисом, он все равно не хочет создавать папку. Нужно ли мне редактировать какие-либо конфигурации моего сервера php? $dirpath = /users/.$username; mkdir($dirpath);

также, если вы тестируете на android 6.0 + api 23 есть изменения в правах, вы должны запросить некоторые из них во время выполнения, объявление манифеста игнорируется )

Еще одна возможная причина: Environment.getExternalStorageDirectory() устарел в API уровне 29

Похожие вопросы:

Я использую CodeIgniter, Когда я нажимаю кнопку Отправить, я перенаправляюсь на элемент управления, который создает фотоальбом. Когда это будет сделано, мне нужно создать карту в images/albums/ .

У меня есть кнопка в моем приложении под названием Reset, которая удаляет всю папку (пользовательскую папку). После этого я пытаюсь снова создать ту же папку, и в первый раз, когда я пытаюсь это.

Я постоянно создаю и удаляю одну и ту же папку в качестве требования. mkdir() создает несколько раз правильно, но несколько раз терпит неудачу, и mkdir() возвращает false. Я искал, и я получил.

Читайте также:  Андроид сравнить с айфонами

Я не могу понять, почему мой скрипт не создает папку из моих входных данных. Вот мой код . #!/bin/bash echo Please enter a foldername to store archives in read $2 echo ++++++++++++++++++++++++++.

Предположим, у нас есть следующий древовидный список: www _ \_sources_ \ \_dir1 \ \_dir2 \ \_file \_cache Я пытаюсь рекурсивно разобрать каждый файл в “sources” и скопировать его в папку “cache”.

Я с ума схожу от этого: Log.d(STATE, Environment.getExternalStorageState()); File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), work_data); Log.d(PATH.

Я пытаюсь создать папку для моего пользователя после того, как он зарегистрировался, однако, хотя нет никакой ошибки с синтаксисом, он все равно не хочет создавать папку. Нужно ли мне редактировать.

Android studio создает тестовую папку с именем androidTest с файлом ApplicationTest.java по умолчанию при создании нового проекта. Очевидно, он используется для тестирования,но какого рода? При.

Следующий код создает Vagrantfile в c:/api/iaas вместо того, чтобы создавать новый файл с помощью mkdir , а затем добавлять Vagrantfile в эту папку. Часть mkdir должна создать папку, но она ее не.

Мое приложение создает папку во всех версиях android без проблем, кроме android Q , я не знаю, почему мой код не работает в android q Вот мой код: File dir = new File(/sdcard/test); try<.

Источник

Android mkdirs () создает файл с нулевым байтом вместо папки

В моем приложении для Android я пытаюсь создать следующую папку на SD-карте:

У меня есть WRITE_STORAGE_PERMISSION под тегом manifest файла манифеста Android. Я могу без проблем создавать другие папки и файлы на SD-карте. Приложение отлично работает на следующих телефонах:

  1. Nexus S (с root-доступом) под управлением Gingerbread (2.3)
  2. Nexus S (некорневой) с Jelly Bean (4.1.2)
  3. HTC Desire (рутированный) под управлением Froyo (2.2)
  4. HTC Desire (без рутирования) под управлением Froyo (2.2)

Однако на телефоне Samsung Galaxy Nexus (без рутирования) с Ice Cream Sandwich (4.0.4) каталог создается как файл нулевого размера, который можно увидеть в Astro. Вызов exists () возвращает false.

  1. Как видно из названия папки, я использую Apache Felix. Феликс автоматически создает каталог кеша, если он не существует. На Galaxy Nexus он всегда жаловался, что не может создать каталог кеша. Astro показывает 0-байтовый файл вместо папки. Вот почему я решил попробовать создать папку кеша сам перед инициализацией Феликса.
  2. Итак, я сам создаю папку с кешем. Приложение работает нормально в первый раз, и я вижу папку в Astro. Если я закрою приложение, затем удалю папку в Astro, а затем повторно запущу приложение, даже мой код загадочным образом не может создать каталог кеша, а Astro покажет 0-байтовый файл.
  3. 0-байтовый файл не может быть удален в Astro. Однако, когда я перезагружаю телефон, папка волшебным образом оказывается там и в порядке.
  4. Я использую FileInstall для просмотра папки OSGiComponents / install. Когда я помещаю баночки с пакетами в эту папку, они обнаруживаются и устанавливаются нормально на всех телефонах, кроме Galaxy Nexus (когда приложение работает в первый раз). Нет никаких журналов / ошибок от FileInstall о невозможности просмотра каталога.
  5. Я тестировал это на двух телефонах Galaxy Nexus, та же проблема.

Я подозреваю, что это проблема с разрешениями, но я не уверен, что это такое и почему создается 0-байтовый файл, в то время как exists () возвращает false. Больше нигде в коде я не создаю этот файл.

Есть предложения по поводу того, в чем может быть проблема?

ОБНОВЛЕНИЕ: я думаю, что обнаружил проблему, см. Ответ, который я опубликовал.

Источник

Оцените статью