Я столкнулся с этой проблемой пару дней, и я не могу понять это. Итак, у меня есть приложение, которое хочет создать папку в корневом каталоге (не во внутреннем каталоге приложения, а во внутреннем каталоге устройства), поэтому я видел, что это фактически внешний каталог. Теперь я использую такой код:Невозможно создать папку в Android
File file = new File(getExternalStorageDirectory().getAbsolutePath(), 'someFolder); boolean created = file.mkdir();
и на некоторых устройствах это не работает. created
всегда ложны. Я не знаю, на каких устройствах, потому что я знаю это из Crashlytics (могу сказать только на устройствах Samsung и Lenovo). На My Nexus 7 и Xperia Sola он работает отлично.
Может кто-нибудь помочь мне в этом вопросе?
извините мою ошибку - это должно быть 'getExternalStorageDirectory()' - я редактировал свой пост. Да, но как он может быть доступен только для чтения, если у вас есть другие папки? как DCIM, где у вас есть ваши фотографии, Download - где у вас есть загруженные вами файлы? У многих приложений есть собственная папка в этой внутренней папке устройства (например, на Nexus 7 это/emulated/0 /). –
Вы проверили, тот же каталог уже существует? [mkdir может вернуть false в этом случае] (http://developer.android.com/reference/java/io/File.html#mkdir()). – ashoke
Да, 'getExternalStorageDirectory()' dir существует. Это также происходит на эмуляторе - 'mkdir()' или 'mkdirs()' возвращает 'false'. –