Android нет папки sd card
Немного теории.
Папка LOST.DIR . Почему она заполняется?
Эта папка создается в случае, когда Android запускает File System ChecK (аналог Windows Chkdsk) и находит потерянные цепочки файлов. Эти файлы появляются, если вы вытаскиваете карту памяти в момент, когда на нее будет производится запись. Ведь Windows пытается записать файлы, используя механизм кэширования. Когда вы выдёргиваете кабель, содержимое кэша не успевает записаться на диск и данные в файле оказываются неполноценные. После того, как девайс отключён от компьютера, Android запускает сканирование карты и обнаруживает такие «битые» файлы, перемещая их остатки в директорию LOST.DIR.
Полезные ссылки:
1. FAQ по устройствам и Android OS — посмотрите в FAQ по Вашему аппарату, может там описаны рекомендуемые карты памяти для конкретной модели аппарата.
2. Посмотрите тему «Аксессуары» Вашего устройства. В ней тоже может быть собрана полезная информация по рабочим и не рабочим картам.
3. Затрудняетесь с выбором карты? Тогда смотрите здесь: Аксессуары для различных устройств, а так же много советов было здесь Хочу купить карту MicroSD 32гб. Посоветуйте., и здесь: Выбор флеш карты
Приступим к практике.
1. Всегда, перед отключением девайса от компьютера, выбирайте «Безопасное извлечение» , а далее, в самом устройстве «Отключить USB накопитель» (P.S. Может называться по другому, в зависимости от модели и прошивки аппарата).
2. Проверьте карту памяти при помощи приложения ScanDisk.
3. Проблема может крыться и в самой карте памяти. Попробуйте отформатировать ее и следуя совету выше, записывайте на нее файлы.
— Как форматировать:
- Полное форматирование с помощью телефона: Меню-Настройки-Память-Отключить карту памяти (Извлечь карту)-Очистить карту-Подключить SD-карту (П.С. названия и пути могут меняться, в зависимости от модели телефона);
- Форматирование с помощью компьютера с выбором разного размера кластера.
- Форматирование с использованием специального приложения SD Formatter или Hard Disk Low Level Format Tool. Так называемое «низкоуровневое» форматирование.
4. Попробуйте поменять кэш на карте памяти с помощью этого приложения: ® SD Speed Increase
5. Форматирование не помогает? Попробуйте заменить карту памяти на другую.
6. Записанные Вами файлы с компьютера видны а с устройства нет? Посмотрите, нет ли случайно в папке, в которую Вы их записали, файла .nomedia(файл скрытый). Если есть — удалите его.
Сообщение отредактировал Gridzilla — 14.08.18, 18:54
Проверьте папки с музыкой на наличие файла .nomedia или просто отформатируйте флеш-карту и перезалейте музыку.
Сообщение отредактировал Fury-Fox — 23.10.11, 03:53
Запустите через Rescan Media сканирование флешки
Сообщение отредактировал eeriesilence — 23.10.11, 18:40
Запустите через Rescan Media сканирование флешки
Сообщение отредактировал eeriesilence — Сегодня, 19:40
Еще есть вариант, что в папке с музыкой лежит файл «.nomedia». Его надо удалить.
P.s. этот файл можно увидеть через PC
Я обычно, от чужих глаз файлы храню.
Сообщение отредактировал Kwitty — 24.10.11, 14:53
armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.
Сообщение отредактировал Бодтэк — 24.10.11, 15:05
armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.
Сообщение отредактировал Бодтэк — Вчера, 16:05
Причина редактирования: Исправил ошибку.
Друг мой, ты просто красавчик. 🙂 все сделал,как ты сказал, заработало :-):-):-):-) как тут на сайте у вас тут принято рейтинг поднимать или что, научи, подниму 🙂
У меня такая же проблема ставь лучше Power amp и забудь свои проблемы.
Добавлено 16.11.2011, 19:01:
Лучше препрошиться сохранить данные с флешки и всё будет все нормально , пробуй.
Источник
Получение пути к карте памяти SD Card на Android
Разрабатывая приложение для проведения соревнований, я столкнулся с проблемой хранения базы данных. Проблема состояла в том, как мне определить внешнюю карту памяти. В целом поиск в сети точного ответа не дал. Поэтому, объединив все найденные результаты, я собрал свой класс. Если кому интересно, смотрим под катом.
Итак, начнем с теории.
Терминология
Гугл нам говорит, что есть следующие понятия:
- Внутренняя (internal) память — это часть встроенной в телефон карты памяти. При ее использовании по умолчанию папка приложения защищена от доступа других приложений (Using the Internal Storage).
- Внешняя (external) память — это общее «внешнее хранилище», т.е. это может быть как часть встроенной памяти, так и удаляемое устройство. Обычно это часть встроенной памяти, как удаляемое устройство я видел в последний раз на андройде 2.2, где встроенная память была около 2Гб, и подключаемая память становилась внешней (Using the External Storage).
- Удаляемая (removable) память — все хранилища, которые могут быть удалены из устройства без «хирургических» вмешательств.
До версии KitKat 4.4 API не предоставляло функционала для получения путей к внешней памяти. Начиная с этой версии (API 19) появилась функция public abstract File[] getExternalFilesDirs (String type), которая возвращает массив строк с путями к внутренней и внешней памяти. Но как же быть с нашей SD Card, которая вставлена в слот? Путь к ней мы опять не можем получить.
Результаты поиска
Чтобы ответить на поставленный вопрос я обратился к всезнающему гуглу. Но и он мне не дал четкого ответа. Было рассмотрено множество вариантов определения от использования стандартных функций, которые ведут к внешней памяти, но ничего общего с удаляемыми устройствами хранения данных они не имеют, до обработки правил монтирования устройств (Android же на ядре Linux работает). В последних случаях были использованы «зашитые» пути к папке с примонтироваными устройствами (в различных версиях эта директория разная). Не стоит забывать, что от версии к версии правила монтирования меняются.
В конечном итоге я решил объединить все полученные знания и написал свой класс, который может нам вернуть пути к внешним и удаляемым устройствам.
Описание кода
Был создан класс MountDevice, который содержит в себе путь к устройству, тип устройства и некий хэш.
Типов устройств выделено два (внутреннюю память я не стал трогать, так как к ней доступ можно получить через API системы).
И был создан класс StorageHelper, который и осуществляет поиск доступных карт памяти.
В классе StorageHelper реализовано два способа поиска — через системное окружение (Environment) и с использованием утилиты Linux mount, а точнее результата ее выполнения.
Способ первый — Environment
При работе с окружением я использую стандартную функцию getExternalStorageDirectory() для получения информации о внешней памяти. Чтобы получить информацию о удаляемой памяти, я использую переменную окружения «SECONDARY_STORAGE«.
Внешняя память всегда одна и обычно всегда есть, поэтому проверяем ее на читаемость, вычисляем хэш и запоминаем. Удаляемой памяти может быть много, поэтому необходимо полученную строку разбить по разделителю и проверять каждое значение.
Вариант решения взят со stackoverflow. Ответ где-то там внизу.
Способ второй — mount
Так как у меня долго не получалось заставить систему мне сказать путь к удаляемой памяти, я решил искать в сторону примонтированных устройств. В системе есть файлы конфигурации, в которых описаны правила монтирования внешних устройств. Все бы хорошо, но на Android версии 4.* к этому файлу простым смертным доступа нет, поэтому рассматривать этот способ не буду.
Вернемся к утилите mount. При запуске без параметров команда возвращает список смонтированных файловых систем. Удаляемые устройства имеют обычно формат файловой системы FAT, то будем выделять строки, в которых есть характеристика «fat«. Внешняя память будет характеризоваться параметром «fuse«.
Примечание: при использовании такого способа не всегда корректно (скорее всего я что-то не учел) определяются типы смотнтированных устройств. Разницу замечал на разных версиях Android. Поэтому этот способ можно использовать как дополнительный.
Вариант решения взят со stackoverflow. Ответов там несколько примерно одинаковых.
Про дублирование
Многие замечали в директории монтирования устройств такую картину:
И что самое интересно, все это одна и та же внешняя карта памяти. Такое дробление начинается с версии Jelly Bean и сделано это для поддержки многопользовательского режима работы системы. Более подробно тут. И вот, чтобы не получать одну и туже карту памяти как различные устройства, необходим способ определения идентичности. Если бы был доступ к конфигурации монтирования, то и вопросов не было. Но доступа нет. Поэтому я тут подсмотрел решение с расчетом хэша для каждого устройства:
- создаем StringBuilder
- записываем в него общий размер устройства и размер используемого пространства устройства
- обходим содержимое корня устройства
- записываем имя каталога
- записываем имя файла и размер
- вычисляем hash
Пример использования
Заключение
Подробные рассуждения по этому вопросу понимания памяти в Android, некоторые советы можно прочитать тут.
Исходный код всего класса расположен еще нигде не расположен. На днях постараюсь разместить на gitHub.
Источник
Android нет папки sd card
Перенос кэша игр и данных других программ на sdcard2 (ROOT)
Сами знаете, что внутренняя память не резиновая и при установки очередной игры с кэшем часто не хватает места.
Вчера ночью и я столкнулся с данной проблемой. Решение нашел довольно быстро.
Чтобы не мучать линуксоидов скажу: mount -o bind /what/you/mount /where/want/mount
И пока знающие ребята переносят кэши и карты на внешнюю флешку, мы начнем постигать сие премудрие с самого начала :yes2:
Перенос будем рассматривать на примере кэшей игр от Gameloft. (да я знаю что есть спец прога 😛 )
Внимание!
Данный способ рассматривается на примере для DellStreak7 Android 3.2, точка монтирования внешней флешки в вашем устройстве может называться иначе.
Ну и, естественно, все на ваш страх и риск.
1. Определитесь где у вас на sdcard2 будут храниться перенесенные данные и создайте для них папку. Я создал ее с названием Bind
2. Создайте в только что созданной папке еще одну папку с именем gameloft
3. Перенесите в нее содержимое папки /mnt/sdcard/gameloft/games
4. Скачайте с маркета бесплатное приложение Script Manager
5. Решите где у вас будет лежать скрипт. Я создал на внутренней флешке папку Scripts .
6. Запустите Script Manager и перейдите в эту папку.
7. Создайте новый скрипт ( меню-(+) ) и назовите его bind.sh
8. Щелкните по свежесозданному файлу и в появившемся меню нажмите:
Звездочку — это добавит наш скрипт в избранное.
Черепок — запуск скрипта с root привилегиями.
Шестеренку — добавит скрипт в автозагрузку.
Далее жмем кнопку Edit и открываем скрипт любимым текстовым редактором.
9. Настало время для самого сложного >-)
Структура команды:
mount -o bind
Исходя из этого у нас получается:
mount -o bind /mnt/sdcard2/bind/gameloft /mnt/sdcard/gameloft/games
иными словами мы говорим системе что содержимое папки /sdcard/gameloft/games находится в папке /sdcard2/bind/gameloft
10. В открытом файле (вы ведь не закрыли его еще? 😉 ) пишем:
11. Сохраняем файл и закрываем текстовый редактор.
12. Жмем кнопку Run и идем в папку /gameloft/games
Если кэши в ней видны, значит вы все сделали правильно, можно запустить и проверить игру.
При следующей перезагрузке скрипт выполнится автоматически.
По аналогии переносим другие данные просто дописывая в этот скрипт.
Пример моего скрипта:
Q: У меня нет папки mnt.
A: Вам стоит почитать о файловой структуре Android.
Q: Можно же просто симлинк создать!
A: Если вы расскажете как это сделать на fat разметке — пошатнете мир линукса.
Q: Не работает.
A: Работает! Делайте строго по инструкции!
Сообщение отредактировал Dreamer. — 30.11.15, 09:25
Будте так добры в дополнение расскажите каким образом править путь закачки кеша,допустим есть игра Modern Combat-3 и ее вес составляет 1637 MB,в планшете свободные 1.3 GB. Попытки монтирования с помощью GL-to-SD в любом случае кеш переносится во внутренний Flash
Источник
Android нет папки sd card
Немного теории.
Папка LOST.DIR . Почему она заполняется?
Эта папка создается в случае, когда Android запускает File System ChecK (аналог Windows Chkdsk) и находит потерянные цепочки файлов. Эти файлы появляются, если вы вытаскиваете карту памяти в момент, когда на нее будет производится запись. Ведь Windows пытается записать файлы, используя механизм кэширования. Когда вы выдёргиваете кабель, содержимое кэша не успевает записаться на диск и данные в файле оказываются неполноценные. После того, как девайс отключён от компьютера, Android запускает сканирование карты и обнаруживает такие «битые» файлы, перемещая их остатки в директорию LOST.DIR.
Полезные ссылки:
1. FAQ по устройствам и Android OS — посмотрите в FAQ по Вашему аппарату, может там описаны рекомендуемые карты памяти для конкретной модели аппарата.
2. Посмотрите тему «Аксессуары» Вашего устройства. В ней тоже может быть собрана полезная информация по рабочим и не рабочим картам.
3. Затрудняетесь с выбором карты? Тогда смотрите здесь: Аксессуары для различных устройств, а так же много советов было здесь Хочу купить карту MicroSD 32гб. Посоветуйте., и здесь: Выбор флеш карты
Приступим к практике.
1. Всегда, перед отключением девайса от компьютера, выбирайте «Безопасное извлечение» , а далее, в самом устройстве «Отключить USB накопитель» (P.S. Может называться по другому, в зависимости от модели и прошивки аппарата).
2. Проверьте карту памяти при помощи приложения ScanDisk.
3. Проблема может крыться и в самой карте памяти. Попробуйте отформатировать ее и следуя совету выше, записывайте на нее файлы.
— Как форматировать:
- Полное форматирование с помощью телефона: Меню-Настройки-Память-Отключить карту памяти (Извлечь карту)-Очистить карту-Подключить SD-карту (П.С. названия и пути могут меняться, в зависимости от модели телефона);
- Форматирование с помощью компьютера с выбором разного размера кластера.
- Форматирование с использованием специального приложения SD Formatter или Hard Disk Low Level Format Tool. Так называемое «низкоуровневое» форматирование.
4. Попробуйте поменять кэш на карте памяти с помощью этого приложения: ® SD Speed Increase
5. Форматирование не помогает? Попробуйте заменить карту памяти на другую.
6. Записанные Вами файлы с компьютера видны а с устройства нет? Посмотрите, нет ли случайно в папке, в которую Вы их записали, файла .nomedia(файл скрытый). Если есть — удалите его.
Сообщение отредактировал Gridzilla — 14.08.18, 18:54
Проверьте папки с музыкой на наличие файла .nomedia или просто отформатируйте флеш-карту и перезалейте музыку.
Сообщение отредактировал Fury-Fox — 23.10.11, 03:53
Запустите через Rescan Media сканирование флешки
Сообщение отредактировал eeriesilence — 23.10.11, 18:40
Запустите через Rescan Media сканирование флешки
Сообщение отредактировал eeriesilence — Сегодня, 19:40
Еще есть вариант, что в папке с музыкой лежит файл «.nomedia». Его надо удалить.
P.s. этот файл можно увидеть через PC
Я обычно, от чужих глаз файлы храню.
Сообщение отредактировал Kwitty — 24.10.11, 14:53
armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.
Сообщение отредактировал Бодтэк — 24.10.11, 15:05
armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.
Сообщение отредактировал Бодтэк — Вчера, 16:05
Причина редактирования: Исправил ошибку.
Друг мой, ты просто красавчик. 🙂 все сделал,как ты сказал, заработало :-):-):-):-) как тут на сайте у вас тут принято рейтинг поднимать или что, научи, подниму 🙂
У меня такая же проблема ставь лучше Power amp и забудь свои проблемы.
Добавлено 16.11.2011, 19:01:
Лучше препрошиться сохранить данные с флешки и всё будет все нормально , пробуй.
Источник