Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
alegator74
1 / 1 / 0
Регистрация: 21.08.2016
Сообщений: 17
#1

Передача файла с FTP в папку загрузки Планшета - Программирование Android

18.09.2016, 11:53. Просмотров 268. Ответов 4
Метки нет (Все метки)

Добрый день, подскажите пожалуйста, почему программа согласно отладчика затыкается на строке с new FileOutputStream(downloadFile1). Сама задача состоит в том что с ФТП я должен скачать файлы, скопировать их на планшет в папку загрузки прочитать из них информацию после чего удалить с планшета. Скачивание я провожу во втором потоке, т.к. в основном это неполучается.
Всего у меня 2 класса
1.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
 
import java.io.IOException;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
 
    public void setBtnFTP(View v) throws IOException {
        DownloadFTP downloadFTP = new DownloadFTP();
 
 
    }
 
 
}
2.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
 
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
 
/**
 * Created by Олег on 16.09.2016.
 */
public class DownloadFTP  {
 
    String address = "77.222.42.180";
    //public static InetAddress getByName(address);
    InetAddress inetAddress;
    int port = 21;
    String username = "мой логин";
    String password = "мой пароль";
 
    DownloadFTP() throws IOException {
 
        //загрузку сделаем во втором потоке
        Runnable r = new Download(address, port, username, password);
        Thread t = new Thread(r);
        t.start();
 
 
    }
 
 
}
 
class Download implements Runnable {
    String host = "";
    int port = 0;
    String log = "";
    String pass = "";
    File downloadedFile = null;
 
    // в этой папке будем искать файлы с расширением .xml
    String ext = ".xml";
 
    public Download(String host, int port, String log, String pass) {
 
        this.host = host;
        this.port = port;
        this.log = log;
        this.pass = pass;
    }
 
    public void run() {
 
        FTPClient ftpClient = new FTPClient();
 
                try
        {
            InetAddress ia = InetAddress.getByName(host);
            ftpClient.connect("77.222.42.180");
            ftpClient.enterLocalPassiveMode();
            ftpClient.login(log, pass);
 
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
 
            ftpClient.changeWorkingDirectory("OBMEN/IN");
 
            FTPFile[] files = ftpClient.listFiles(); //вернем файлы указанной директории
 
            for(FTPFile ftpFile : files)
            {
                
                //DIRECTORY_TYPE - каталог
                if(ftpFile.getType() == FTPFile.FILE_TYPE)
                {
 
                    String nameFile = ftpFile.getName();
                    //проверим есть ли в названии файла необходимое расширение
                    if(nameFile.toLowerCase().endsWith(ext)) {
 
                        String remoteFile1 = ftpClient.printWorkingDirectory().toString()+"/" + nameFile; //отсюда
                        File downloadFile1 = new File("/storage/sdcard0/download/"+ nameFile); //сюда все файлы с расширением .xml
 
//ЗДЕСЬ ОТЛАДЧИК ПОСЛЕДНИЙ РАЗ ОБРАБАТЫВАЕТ ПРОЦЕДУРУ new FileOutputStream
//ПОСЛЕ ЧЕГО ЗАВЕРШАЕТ СВОЮ РАБОТУ
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
                        boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
                        outputStream1.close();
 
 
                                            }
                }
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
 
    }
}
Добавлено через 10 минут
Получается что я к ФТП подсоединился нормально, перебрал все файлы в искомой папке, нашел с нужным мне расширением, а вот скачать никак не могу.

Добавлено через 2 часа 10 минут
e.getMessage() выдает
java.io.FileNotFoundException: /storage/sdcard0/download/666.xml: open failed: ENOENT (No such file or directory)
Я понимаю что это говорит что не найден каталог или файл, но я и пытаюсь прописать что хочу его туда создать, причем пробовал указывать и просто каталог /storage/sdcard0/download - тоже ругается хотя в инете я нашел что при использовании внутренней памяти планшета указывается именно этот путь. Что я делаю непрпавильно, чтобы скачать файл и записать его на планшете?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2016, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача файла с FTP в папку загрузки Планшета (Программирование Android):

Отправка данных с планшета на удаленный компьютер. оптимизация производительности планшета - Программирование Android
Всем здравствуйте. В общем, задача такая. Имеется приложение для планшета, собирающее данные с некоего прибора по блютусу, а конкретно, оно...

% загрузки файла - Программирование Android
Гружу из сети файл по примеру из ...

Функция для загрузки файла на сервер - Программирование Android
public void sendMedia(String urlAddr, String filePath) { final String serverAddress = urlAddr; final File file = new...

Написать форму для загрузки файла на сервер, в свою рабочую папку (с проверкой размера файла) - PHP
Написать форму для загрузки файла на сервер, в свою рабочую папку. И должен проверяться размер файла.если заданный текстовый файл больше...

загрузки файла в папку! - PHP
Помогите с кодом пожалуйста! я только учусь с пхп программировать))) Краткое описание: Скрипт выводит web форму для загрузки...

Зависание загрузки файла с FTP-сервера - CMD/BAT
Всем привет. Ребята, у меня пробелма когда запускается загрузка файла, она просто зависает и все, но в лога фтп сервера, пишется, что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,798
Завершенные тесты: 1
18.09.2016, 11:58 #2
какой смысл их сохранять в download?
папку для кеша использовать нелья?
0
alegator74
1 / 1 / 0
Регистрация: 21.08.2016
Сообщений: 17
18.09.2016, 11:59  [ТС] #3
можно, подкажите как путь указать правильно, попробую, а то не найду пока таких примеров. Понимаю что tmp но что перед ним и после него?
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,798
Завершенные тесты: 1
18.09.2016, 12:01 #4
http://lmgtfy.com/?q=android+save+file+to+cache+dir
0
alegator74
1 / 1 / 0
Регистрация: 21.08.2016
Сообщений: 17
18.09.2016, 12:03  [ТС] #5
спасибо, сейчас поизучаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2016, 12:03
Привет! Вот еще темы с ответами:

Ограничение скорости загрузки файла по ftp - C#
как мне реализовать ограничение скорости? вот мой код: private void DownLoadFromServer(String url, String savePath, bool...

Автодетектирование нового файла и его автозагрузка в папку на FTP-сервере - CMD/BAT
Здравствуйте уважаемые форумчане. Излагаю суть. Есть сайт с ftp-доступом. Есть специализированный софт, который локально на windows 7...

Excel - передача файла по FTP или отправка файла сценарию на php. - VBA
1) Необходимо из страницы экселя сформировать текстовый файл и перезаписать его на FTP-сервере. Или создать этой файл локально и...

После окончания загрузки файла с FTP закрыть форму - C#
Вопрос таков, есть код, хочу после окончания загрузки закрыть форму. Форму не закрывает , даже если пишу Form1.ActiveForm.Close(); или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.09.2016, 12:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru