Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 21.08.2016
Сообщений: 17
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите пожалуйста, почему программа согласно отладчика затыкается на строке с 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2016, 11:53
Ответы с готовыми решениями:

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

Скорость загрузки файла на FTP
Всем привет! Подскажите пожалуйста по поводу вычисления скорости загрузки файла на сервер. Код...

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

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

4
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
18.09.2016, 11:58 2
какой смысл их сохранять в download?
папку для кеша использовать нелья?
0
2 / 2 / 0
Регистрация: 21.08.2016
Сообщений: 17
18.09.2016, 11:59  [ТС] 3
можно, подкажите как путь указать правильно, попробую, а то не найду пока таких примеров. Понимаю что tmp но что перед ним и после него?
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
18.09.2016, 12:01 4
http://lmgtfy.com/?q=android+s... +cache+dir
0
2 / 2 / 0
Регистрация: 21.08.2016
Сообщений: 17
18.09.2016, 12:03  [ТС] 5
спасибо, сейчас поизучаю
0
18.09.2016, 12:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2016, 12:03
Помогаю со студенческими работами здесь

Программа виснет после загрузки файла на FTP
Всем здравствуйте, не магу решить проблему, программа виснет после загрузки файла на FTP. Сам файл...

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

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

После окончания загрузки файла с FTP закрыть форму
Вопрос таков, есть код, хочу после окончания загрузки закрыть форму. Форму не закрывает , даже если...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru