Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание своего ftp-клиента на java / 5 сообщений из 5, страница 1 из 1
13.02.2013, 12:09:35
    #38149154
Philip_Stubborn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание своего ftp-клиента на java
Снова всем привет.

У меня есть вот такой код
Код: 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.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
package JavaDBFReaderTest;

import org.apache.commons.net.ftp.FTPClient;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;

public class FTP_Client {
 
 /**
  * Функция для получения списка файлов и папок в папке Folder
  * @param FTPADDR, адрес ФТП сервера
  * @param user, логин к фтп
  * @param Password, пароль к фтп
  * @param Folder, папка где будет производиться поиск
  * @return String[] RESULT, список файлов/папок
  */
 public static String[] GetList(String FTPADDR, String user, String Password,String Folder)
{
 String[] RESULT;
 
 RESULT = null;
 
 FTPClient client = new FTPClient();
 try {
 client.connect(FTPADDR);
 client.login(user, Password);
 client.changeWorkingDirectory(Folder);
 RESULT = client.listNames();
 client.logout();
  } catch (IOException e) {
  e.printStackTrace();
  } finally {
  try {
  client.disconnect();
  } catch (IOException e) {
  e.printStackTrace();
  }
 }
    
 
 return RESULT;
}

/**
 * Upload a file to a FTP server
  * @param FTPADDR, адрес ФТП сервера
  * @param user, логин к фтп
  * @param Password, пароль к фтп
 * @param PathOnFtp, путь к файлу на фтп - например /upload/touch.dat
 * @param FilenameOnLocalMachine, путь к файлу на локальной машине - например C:/somefile.txt
 */
 public static void UploadFileOnFtp(String FTPADDR, String user, String Password,String PathOnFtp, String FilenameOnLocalMachine)
 {
  FTPClient client = new FTPClient();
 
   FileInputStream fis = null;
 
   try {
   client.connect(FTPADDR);
   client.login(user, Password);
 
   //client.changeWorkingDirectory("upload");

   // Create an InputStream of the file to be uploaded

   String filename = FilenameOnLocalMachine;
   fis = new FileInputStream(filename);
 
 
   // Store file to server
   //
   client.storeFile(PathOnFtp, fis);
   client.logout();
   } catch (IOException e) {
   e.printStackTrace();
   } finally {
   try {
   if (fis != null) {
   fis.close();
   }
   client.disconnect();
   } catch (IOException e) {
   e.printStackTrace();
   }
   }
 }
 
 /**
  * Download File from FTP
   * @param FTPADDR, адрес ФТП сервера
   * @param user, логин к фтп
   * @param Password, пароль к фтп
  * @param FullPathToPutFile - полный путь к файлу на локальной машине, куда будем его сохранять
  * @param FilenameOnFTP - имя файла на фтп (функция ищет файл в папке /upload/)
  */
 public static void DownloadFileFromFTP(String FTPADDR, String user, String Password,String FullPathToPutFile, String FilenameOnFTP)
 {
  
  FTPClient client = new FTPClient();
    FileOutputStream fos = null;

    try {
    client.connect(FTPADDR);
    client.login(user, Password);


//       The remote filename to be downloaded.

    String filename = FullPathToPutFile;
    fos = new FileOutputStream(filename);


//       Download file from FTP server

    client.retrieveFile("/upload/"+FilenameOnFTP, fos);
    //
  
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    if (fos != null) {
    fos.close();
    }
    client.disconnect();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    
    /**
     * Delete File From FTP
    * @param FTPADDR, адрес ФТП сервера
      * @param user, логин к фтп
      * @param Password, пароль к фтп
     * @param Filename, путь к файлу (например /upload/touch.dat)
     */
    
    public static void DeleteFileOnFtp(String FTPADDR, String user, String Password,String Filename)
    {
     FTPClient client = new FTPClient();
     try {
     client.connect(FTPADDR);
     client.login(user, Password);
     
     //
     // Delete file on the FTP server. When the FTP delete complete
     // it returns true.
     //
     String filename = Filename;
     boolean deleted = client.deleteFile(filename);
     if (deleted) {
     System.out.println("File deleted...");
     }
     
     client.logout();
     } catch (IOException e) {
     e.printStackTrace();
     } finally {
     try {
     client.disconnect();
     } catch (IOException e) {
     e.printStackTrace();
     }
    }
    }
  


 public static void main(String[] args) {
  // Использование
  
  DownloadFileFromFTP("127.0.0.1","user","user","C:/touch.dat","touch.dat");
  UploadFileOnFtp("127.0.0.1","user","user","/upload/touch.dat","C:/1.xml");
 
 String[] RESULT = GetList("127.0.0.1","user","user","upload");
 for (int i=0;i<RESULT.length;i++)
  {
   System.out.println("Name = " + RESULT[i]);
  }
 
      DeleteFileOnFtp("127.0.0.1","user","user","/upload/touch.dat");
 
 
 }
}



При запуске получаю вот такие ошибки. Что я делаю не так.
Код: 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.
java.net.ConnectException: Connection refused: connect
	at java.net.DualStackPlainSocketImpl.connect0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:175)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:196)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:289)
	at JavaDBFReaderTest.FTP_Client.DownloadFileFromFTP(FTP_Client.java:104)
	at JavaDBFReaderTest.FTP_Client.main(FTP_Client.java:176)
java.net.ConnectException: Connection refused: connect
	at java.net.DualStackPlainSocketImpl.connect0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:175)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:196)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:289)
	at JavaDBFReaderTest.FTP_Client.UploadFileOnFtp(FTP_Client.java:60)
	at JavaDBFReaderTest.FTP_Client.main(FTP_Client.java:177)
java.net.ConnectException: Connection refused: connect
	at java.net.DualStackPlainSocketImpl.connect0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:175)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:196)
	at org.apache.commons.net.SocketClient.connect(SocketClient.java:289)
	at JavaDBFReaderTest.FTP_Client.GetList(FTP_Client.java:26)
	at JavaDBFReaderTest.FTP_Client.main(FTP_Client.java:179)
Exception in thread "main" java.lang.NullPointerException
	at JavaDBFReaderTest.FTP_Client.main(FTP_Client.java:180)


Библиотеку скачал отсюда
http://commons.apache.org/net/download_net.cgi
...
Рейтинг: 0 / 0
13.02.2013, 12:36:17
    #38149225
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание своего ftp-клиента на java
Philip_Stubborn,
начиная снизу, ваш GetList может вернуть null, вы это не учитываете.
...
Рейтинг: 0 / 0
13.02.2013, 12:40:16
    #38149236
leader
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание своего ftp-клиента на java
Philip_Stubborn,

там вполне ясно написано "connection refused"
...
Рейтинг: 0 / 0
13.02.2013, 12:45:08
    #38149250
Philip_Stubborn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание своего ftp-клиента на java
Прежде чем пользоваться этим кодом мне нужно создать ftp-клиента отдельно?
...
Рейтинг: 0 / 0
13.02.2013, 19:36:14
    #38150202
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание своего ftp-клиента на java
Apache Commons Net -то чем не угодил???
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание своего ftp-клиента на java / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]