Страница 2 из 3

Re: Работа с файлами на Android

Добавлено: 24 ноя 2012, 18:14
gera
Если мы удаляем используя Runtime, то почему мы не хотим так же использовать его для copy и move, типа чтобы повыделываться пописать лишний код? :)

а вообще вот что пишет developer.android.com:
You should always delete files that you no longer need. The most straightforward way to delete a file is to have the opened file reference call delete() on itself.

Код: Выделить всё

myFile.delete();

Re: Работа с файлами на Android

Добавлено: 05 янв 2013, 18:42
yura_taldenko
Может кто подскажет?
Есть ли в Android стандартный диалог выбора файла? Такой же, как в Windows. Или надо самому с нуля создавать?

Re: Работа с файлами на Android

Добавлено: 05 янв 2013, 19:23
rezak90
yura_taldenko писал(а):Может кто подскажет?
Есть ли в Android стандартный диалог выбора файла? Такой же, как в Windows. Или надо самому с нуля создавать?
http://stackoverflow.com/questions/3592 ... ile-dialog
http://www.ulduzsoft.com/2012/07/androi ... ertdialog/
http://code.google.com/p/android-file-dialog/
последний лучше всего наверное

Re: Работа с файлами на Android

Добавлено: 05 янв 2013, 20:48
KamiSempai
Не проще ли Intent использовать?

Re: Работа с файлами на Android

Добавлено: 05 янв 2013, 21:03
rezak90
конечно проще, но если хочется чего то своего =)

Re: Работа с файлами на Android

Добавлено: 06 янв 2013, 22:53
yura_taldenko
"Не проще ли Intent использовать?"
нельзя ли поподробнее?

Re: Работа с файлами на Android

Добавлено: 06 янв 2013, 23:29
rezak90
yura_taldenko писал(а):"Не проще ли Intent использовать?"
нельзя ли поподробнее?
http://stackoverflow.com/questions/7856 ... le-chooser

Re: Работа с файлами на Android

Добавлено: 11 мар 2013, 22:05
SPAWN
Подскажите, пожалуйста, как создать папку во внутренней памяти

Re: Работа с файлами на Android

Добавлено: 25 июл 2013, 10:45
Nyashka
На Sd карте(а не в ресурсах приложения) находится xml файл. Как мне подключив его в программе как File преобразовать в xml который я смогу парсить?

Re: Работа с файлами на Android

Добавлено: 26 июл 2013, 14:46
Finch
гугл религия не позволяет использовать?
Создаешь File, путь к нему через Environment.getExternalStorageDirectory() + путь к файлу, дальше проверяем если файл существует, читаем его FileReader_ом и загоняем в BufferedReader. Дальше читаем построчно BufferedReader_ом + перенос "\n" и аппэндим в StringBuilder. Закрываем BufferedReader и вызываем у StringBuilder_а метод toString(). Вот у нас есть String который можно парсить =)

Re: Работа с файлами на Android

Добавлено: 02 окт 2013, 01:19
buy
rezak90 писал(а):

Код: Выделить всё

File dir = new File("sdcard\\mydir\\");
for(File file : dir.listFiles()) {
if(file.isFile())
//работаем с файлом и т.д.
}
А почему в первой строке двойной слэш и в неправильную сторону, почему не

Код: Выделить всё

File dir = new File("/mnt/sdcard/mydir/etc");

Re: Работа с файлами на Android

Добавлено: 20 ноя 2013, 12:51
coolmarat
Ребята, я очень начинающий. Подскажите, как я могу вместе с приложением распространять файлы и при необходимости обращаться к ним? Я думаю, надо как-то в ресурсы запихать при разработке. А как потом при выполнении к ним обратиться?

Re: Работа с файлами на Android

Добавлено: 20 ноя 2013, 14:50
rezak90
coolmarat писал(а):Ребята, я очень начинающий. Подскажите, как я могу вместе с приложением распространять файлы и при необходимости обращаться к ним? Я думаю, надо как-то в ресурсы запихать при разработке. А как потом при выполнении к ним обратиться?
http://developer.alexanderklimov.ru/and ... assets.php

Re: Работа с файлами на Android

Добавлено: 26 ноя 2013, 21:15
trew
String sdState = android.os.Environment.getExternalStorageState(); //Получаем состояние SD карты (подключена она или нет) - возвращается true и false соответственно
if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) // если true
File sdDir = android.os.Environment.getExternalStorageDirectory();
Этот код у меня возвращает всегда true (подробности ниже).
/mnt/sdcard

String sdState = android.os.Environment.getExternalStorageState();
всегда возвращает: mounted

Для моего устройства: android 4.0, Prology Latitude T-720T

Код: Выделить всё

File sdDir = android.os.Environment.getExternalStorageDirectory();
когда microSD не вставлена, возвращается путь: /mnt/sdcard
когда microSD вставлена : /mnt/sdcard (это внутренняя память устройства)
Т.е. никак не показывает путь к внешней карте: /mnt/extsd

Вопрос: каким образом получить путь к внешней карте, с учётом того, что на разных устройствах он разный?

Код: Выделить всё

/emmc
/mnt/sdcard/external_sd
/mnt/external_sd
/sdcard/sd
/mnt/sdcard/bpemmctest
/mnt/sdcard/_ExternalSD
/mnt/sdcard-ext
/mnt/Removable/MicroSD
/Removable/MicroSD
/mnt/external1
/mnt/extSdCard
/mnt/extsd
/mnt/usb_storage <-- usb flash mount
/mnt/extSdCard <-- usb flash mount
/mnt/UsbDriveA <-- usb flash mount
/mnt/UsbDriveB <-- usb flash mount
Чтение документации не прояснило ситуацию.

Если в уроке 75 поменять путь
[syntax=java]// получаем путь к SD
File sdPath = new File("/mnt/extsd");
//Environment.getExternalStorageDirectory();[/syntax]
файл будет записан на внешнюю карту.

Нужно получить путь: /mnt/extsd ---- не прописывая его в коде.
Или это новое поколение устройств, где пути прописываются руками, к внешней sd-карте?

в файле манифеста прописаны права:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">

Re: Работа с файлами на Android

Добавлено: 26 ноя 2013, 21:47
Foenix
getExternalStorageDirectory нужно использовать
Так и не поняла - в чем собственно проблема? Нет карты - пишется во внутреннюю память, есть - во внешнюю.. Да, немного странновато, но только и всего. Имхо нигде этот пусть хранить не нужно, а каждый раз пользоваться функцией. И каждый раз, при использовании этого хранилища, проверять - есть ли там файл (какой нужно) т.к. карту могут не только вытащить, стереть инфу на ней и так далее. Это уже нюансы использования карты.

Re: Работа с файлами на Android

Добавлено: 26 ноя 2013, 21:52
trew
Foenix писал(а):Так и не поняла - в чем собственно проблема? Нет карты - пишется во внутреннюю память, есть - во внешнюю..
Всегда пишется на внутреннюю память: /mnt/sdcard
В этом проблема.

Я уже писал, и поэтому напишу ещё раз :) getExternalStorageDirectory всегда возвращает /mnt/sdcard
подключена карта или не подключена.

Re: Работа с файлами на Android

Добавлено: 26 ноя 2013, 22:52
Foenix
Я тоже хочу повториться. Если карточка есть, то файл записывается на нее.
Вот кусок кода, т.к. ссылки уже давно никто не понимает.

Код: Выделить всё

sdState = android.os.Environment.getExternalStorageState();
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
            baseDir = android.os.Environment.getExternalStorageDirectory();
            directory = new File(baseDir, NAMESPACE);
            if (!directory.exists())
                directory.mkdirs();
        } else {
        	//тут другую выбираем
        }
	  
ПИШЕТСЯ НА КАРТУ!!!

Re: Работа с файлами на Android

Добавлено: 27 ноя 2013, 13:51
trew
Foenix писал(а):ПИШЕТСЯ НА КАРТУ!!!
Покажите пожалуйста лог для случаев: карта подключена и карта отсутствует, этой строки:
baseDir = android.os.Environment.getExternalStorageDirectory();

у меня всегда возвращает: /mnt/sdcard

в файле манифеста прописаны права:
[syntax=xml]<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">[/syntax]

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

У пользователя IgNa тоже не получилось.
Может мы делаем что-то не так. Где ошибка в наших действиях?

Re: Работа с файлами на Android

Добавлено: 27 ноя 2013, 14:01
rezak90
path /mnt/sdcard may be even if you have not sdcard

Re: Работа с файлами на Android

Добавлено: 27 ноя 2013, 14:08
trew
rezak90 писал(а):path /mnt/sdcard may be even if you have noе sdcard
Не понял, что такое noe?

Как получить путь /mnt/extsd ?