Загрузить файл ftp client commons net ftp 3.6 / 3.1 / 2.2

Привет, это первое сообщение от меня, и извините за мой базовый английский, у меня проблема с этим действием. Я пытаюсь перенести файл со своего телефона на сервер HTTP в специальном каталоге. Я должен взять хранилище / Загрузить, потому что другое приложение сохраняет файл в этом каталоге, и я не могу изменить этот путь.

package com.example.mufas.bookonline;`

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.SocketException;

import es.dmoral.toasty.Toasty;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;

import static android.content.ContentValues.TAG;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void deleteFile(View view) {


        File path = Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DOWNLOADS);

        File file = new File(path, "esempio.txt");

        if (path.exists()) {
            System.out.println("Il file " + path + " esiste");
            file.delete();
            System.out.println("Il file " + path + " è stato eliminato");
            Toasty.success(getApplication(), "File elimininato", Toast.LENGTH_LONG, true).show();
        }
        // Make sure the Pictures directory exists.
        path.mkdirs();

    }

    public void newFile(View view) {

//          String path = "/Pictures/html.txt";

        File path = Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DOWNLOADS);

        try {
//         File file = new File(getFilesDir(),path);
            File file = new File(path, "esempio.txt");
            Toasty.success(getApplication(), "File Creato", Toast.LENGTH_LONG, true).show();
            if (file.exists()) {
                Toasty.success(getApplication(), "Il file è gia stato creato", Toast.LENGTH_LONG, true).show();
                System.out.println("Il file " + path + " esiste");
            } else if (file.createNewFile()) {
                System.out.println("Il file " + path + " è stato creato");
            } else {
                System.out.println("Il file " + path + " non può essere creato");
            }

            // Make sure the Download directory exists.
            path.mkdirs();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void trasferisciFile(View view) {

        Thread thread = new Thread(new Runnable() {

            @Override
            public void run() {
                try {

            FTPClient mFTP = new FTPClient();


          File path = Environment.getExternalStoragePublicDirectory(
                  Environment.DIRECTORY_DOWNLOADS);

 //               File path = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);

                        // Connect to FTP Server
                        mFTP.connect("<host>", 21);
                        mFTP.login("<user>", "<password>");
                        //mFTP.setFileType(FTP.BINARY_FILE_TYPE);
                        mFTP.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
                        mFTP.setFileTransferMode(FTP.BINARY_FILE_TYPE);
                        mFTP.enterLocalPassiveMode();


                        // Prepare file to be uploaded to FTP Server

                        File file = new File(path, "esempio.txt");

//                    System.out.println(" sono pronto a trasferire da questo percorso" + path + file);

                        FileInputStream ifile = new FileInputStream(file);

                    // Upload file to FTP Server
                    mFTP.storeFile("online", ifile);

                    mFTP.disconnect();

                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toasty.success(getApplication(), "Il file è stato trasferito", Toast.LENGTH_LONG, true).show();
                        }
                    });

                } catch (SocketException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });

        thread.start();


    }

} // fine classe main 

и это мой manifest.xml

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
    package = "com.example.mufas.bookonline">
    <uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name = "android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name = "android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name = "android.permission.READ_INTERNAL_STORAGE"/>
    <uses-permission android:name = "android.permission.INTERNET" />
    <uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:isolatedProcess = "true"
        android:allowBackup = "true"
        android:icon = "@mipmap/ic_launcher"
        android:label = "@string/app_name"
        android:roundIcon = "@mipmap/ic_launcher_round"
        android:supportsRtl = "true"
        android:theme = "@style/AppTheme">
        <activity android:name = ".MainActivity">
            <intent-filter>
                <action android:name = "android.intent.action.MAIN" />

                <category android:name = "android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

В логате у меня нет ошибки, и приложение ответило мне «Успешная передача». Я использую Android Studio, а устройство - Smasung galaxy tab 3 android 6.0. Что я делаю не так? заранее спасибо

чего вы хотите добиться? уточнить подробнее.

Hemant Parmar 18.04.2018 14:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
282
1

Ответы 1

Извините, но я отправил сообщение и теперь не могу его редактировать. Проблема в том, что файл отсутствует в удаленном каталоге до конца процесса. Я пытаюсь установить приложение на телефон, но безрезультатно. Извините за повторяющийся пост

Другие вопросы по теме