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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Сохранить файл в коренном каталоге http://www.cyberforum.ru/android-dev/thread1809189.html
Не удается создать файл на Path ="/storage/sdcard0/" + "txtfile.txt". Прошу помочь.
Программирование Android Воспроизведение аудио друг за другом Дорогие форумчане, не могу воспроизвести музыку друг за дружком, проиграла первая, сразу началась другая, и так по кругу, как это сделать? И второй вопрос: Можно ли через ini файл воспроизводить... http://www.cyberforum.ru/android-dev/thread1809146.html
Программирование Android Несколько наследований
Привет! Как я могу совместить несколько наследований для класса? Например, я использовал готовый шаблон для navigationbar, который с боку вылазит. public class MainActivity extends...
Проверить наличие в устройстве дачика ориентации - Sensor.TYPE_ORIENTATION Программирование Android
С помощью датчика ориентации (Sensor.TYPE_ORIENTATION) определяю где находится север (компас) , но если датчика нет на устройстве , то нужно выводить сообщение что датчика нет. Как проверить что...
Программирование Android Фон activity или layout http://www.cyberforum.ru/android-dev/thread1808789.html
как заполнить background слоя или активити заполняемой текстурой ?
Программирование Android IllegalStateException media player Делаю проигрователь. Запускаю, выбираю песню. Играет,все ок. Но потом нажимаю назад и выхожу из программы. Запускаю опять...И при выборе песни -- исключение Вот классы и лейауты public... подробнее

Показать сообщение отдельно
alegator74
1 / 1 / 0
Регистрация: 21.08.2016
Сообщений: 17

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

18.09.2016, 11:53. Просмотров 318. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.