С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программное копирование файлов - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Корректная работа с данными при переключении Activity http://www.cyberforum.ru/android-dev/thread850534.html
В моей программе пользователь может вызывать окно настроек, чтобы менять в нем значения некоторых переменных, влияющих на работу программы. Как лучше всего сделать так, чтобы изменения, внесенные...
Программирование Android Ошибка с объявлением Попробовал выполнить этот урок у себя на компьютере. Получил такое. Чего можно починить, чтобы заработало? Текст activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout ... http://www.cyberforum.ru/android-dev/thread850519.html
Есть ли аналог процентов в разметки вида? Программирование Android
Нужно элемент растянуть по ширине как fill_parent, а высота, чтобы составляла определенный процент от высоты. Точнее нужен определенный диапазон. К примеру 10% - 20%, или не более 20% от ширины, но...
Программирование Android Подскажите пожалуйста пример сервиса с видео плеером
Подскажите пожалуйста пример сервиса с видео плеером. Нигде не могу найти пример его
Программирование Android Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ? http://www.cyberforum.ru/android-dev/thread850334.html
У меня есть ListView, у него есть своя разметка на которой находится строчки на каждой из которых Button и textView. Как мне обработать нажатие кнопки и изменить здесь же значение в textView,...
Программирование Android Как сохранить текст с EditText при переходе на другую Activity? проблема такая что не могу реализовать EditText сохраняет данные в буфер или еще куда-то при переходе на следующую Acitivity подробнее

Показать сообщение отдельно
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254

Программное копирование файлов - Программирование Android

28.04.2013, 13:01. Просмотров 2322. Ответов 10
Метки (Все метки)

Здравствуйте. Общий принцип кода такой:
1) находим в списке установленных приложений необходимое мне:
Java
1
2
3
4
5
6
7
8
9
10
11
PackageManager packageManager = getPackageManager();
            List <ApplicationInfo> allApplication = packageManager.getInstalledApplications(0);
            for(int kk=0; kk<allApplication.size(); kk++){
 
                if(allApplication.get(kk).packageName.contains("<название_пакета>")){
                    existApp=true;
                    liteData=allApplication.get(kk).dataDir.trim(); 
                    break;
 
                }  
            }
2) если приложение нашлось (existApp=true), то проверяю существует ли у этого приложения файл БД и если есть, то копирую эту БД:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// метод для проверки существования файла
        public boolean chchFile(String fileName){
            File dbFile = new File(fileName);
            if(dbFile.exists()){
                return true;
            }else{
                return false;
            }
}
 
//копирование файлов
        public boolean copyFile(File source, File dest) {
            FileInputStream is = null;
            FileOutputStream os = null;
            try {
                is = new FileInputStream(source);
                os = new FileOutputStream(dest);
                int nLength;
                byte[] buf = new byte[8000];
                while (true) {
                    nLength = is.read(buf);
                    if (nLength < 0) {
                        break;
                    }
                    os.write(buf, 0, nLength);
                }
                return true;
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                if (is != null) {
                    try {
                        is.close();
                    } catch (Exception ex) {
                    }
                }
                if (os != null) {
                    try {
                        os.close();
                    } catch (Exception ex) {
                    }
                }
            }
            return false;
        }
 
.......
//сама проверка приложения и БД
if(existApp){
  if(chchFile(liteData+"/databases/"+<название файла БД>)){
     copyFile(new File(liteData+"/databases/"+<название файла БД), new File(<место на sd-карте>)); // копируем БД
 
  }
}
Но в результате срабатывает catch (IOException ex) метода copyFile и ошибка
java.io.FileNotFoundException: /data/data/<пакет приложения>/databases/<название_БД>
Получается, что файла как бы не существует. Но как такое может быть? Ведь если бы его не существовало, то при проверке условия вышибало бы уже, а тут в метод копирования заходит и дальше все. Причем БД физически существует по данному пути. В чем ошибка, никак не могу разобраться?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.