#android
#Android
Вопрос:
Я хочу создать файл .nomedia во внутреннем каталоге кэша, где я буду хранить изображения, и попробовал следующее..
File dir = getCacheDir();
File output = new File(dir, ".nomedia");
boolean fileCreated = output.createNewFile();
Когда я пытаюсь, значение этого fileCreated равно false, и файл не создается.
Если я использовал nomedia без точки, файл будет создан, но это бесполезно, поскольку MediaScanner проверяет, существует ли файл .nomedia.
Я также пробовал это с FileOutputStream и записывать данные в файл на случай, если это произошло из-за того, что я создал только пустой файл, но это тоже не работает.
У кого-нибудь есть идеи, почему это может привести к сбою?
Ответ №1:
Хм, вы действительно уверены, что файл еще не существует? Пожалуйста, обратите внимание, что вам нужно выполнить ls -a
, чтобы увидеть файл, начинающийся с точки.
В документации File.createNewFile()
говорится:
Возвращает true, если файл был создан, false, если он уже существует.
Если файл не создан по другим причинам (например, из-за безопасности), он должен выдать исключение.
Комментарии:
1. Да, файл создается, он отображается с символом ls -a, но он не отображается в проводнике в DDMS, поэтому я подумал, что он не был создан, спасибо.
2. действительно ли полезно создавать этот файл во внутренней папке кэша? Разве файлы там уже не являются общедоступными для всех приложений?