當前位置:首頁 » 文件管理 » ftp客戶端開發

ftp客戶端開發

發布時間: 2023-02-21 10:33:07

❶ Windows端有哪些ftp客戶端軟體值得推薦

Windows端有哪些FTP客戶端軟體值得推薦?

Filezilla

FileZilla是一個免費的 FTP 客戶端軟體,雖然它是免費軟體,可功能卻一點也不含糊,比起那些共享軟體來有過之而無不及,在新的版本中作者改進了手動下載的界面和功能等,不過該軟體暫時還是不支持斷點續傳功能。總的來說是一款優秀的免費軟體。

功能介紹:

1、易於使用

2、支持FTP, FTP並支持SSL/TLS (FTPS)協議,支持SSH文件傳輸協議(SFTP)

3、跨平台。在 Windows, Linux, *BSD, Mac OS X 和其它平台下運行 more

4、支持IPv6協議

5、多種可用的語言(包含中文)

6、斷點續傳且支持容量大於4GB的文件

7、多標簽用戶界面

8、功能強大的站點管理器(Site Manager)和傳輸隊列管理

9、書簽功能

10、拖拽功能支持

11、支持傳輸限速功能

12、文件名過濾器

13、文件夾比較功能

14、網路設置向導

15、遠程文件編輯功能

16、保持鏈接功能

17、支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy)

18、登錄到文件功能

19、同步文件夾瀏覽

20、遠程查找文件

❷ 怎樣用java開發ftp客戶端

package zn.ccfccb.util;
import hkrt.b2b.view.util.Log;
import hkrt.b2b.view.util.ViewUtil;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import zn.ccfccb.util.CCFCCBUtil;
import zn.ccfccb.util.ZipUtilAll;

public class CCFCCBFTP {

/**
* 上傳文件
*
* @param fileName
* @param plainFilePath 明文文件路徑路徑
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上傳文件開始");
Log.info("連接遠程上傳伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
// Log.info("連接遠程上傳伺服器"+"192.168.54.106:"+2021);
// ftpClient.connect("192.168.54.106", 2021);
// ftpClient.login("hkrt-CCFCCBHK", "3OLJheziiKnkVcu7Sigz");
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("檢查文件路徑是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}

}

/**
*下載並解壓文件
*
* @param localFilePath
* @param fileName
* @param routeFilepath
* @return
* @throws Exception
*/
public static String fileDownloadByFtp(String localFilePath, String fileName,String routeFilepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FileOutputStream fos = null;
FTPClient ftpClient = new FTPClient();
String SFP = System.getProperty("file.separator");
String bl = "false";
try {
Log.info("下載並解密文件開始");
Log.info("連接遠程下載伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
// ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021);
// ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);
FTPFile[] fs;

ftpClient.makeDirectory(routeFilepath);
ftpClient.changeWorkingDirectory(routeFilepath);
bl = "false";
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
bl = "true";
Log.info("下載文件開始。");
ftpClient.setBufferSize(1024);
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream is = ftpClient.retrieveFileStream(fileName);
bos = new ByteArrayOutputStream(is.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
fos = new FileOutputStream(localFilePath+SFP+fileName);
fos.write(bos.toByteArray());
Log.info("下載文件結束:"+localFilePath);
}
}
Log.info("檢查文件是否存:"+fileName+" "+bl);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon("查詢無結果,請稍後再查詢。");
return bl;
}
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}

// 調用樣例:
public static void main(String[] args) {
try {
// 密鑰/res/20150228
// ZipUtilAll.unZip(new File(("D:/123/123.zip")), "D:/123/");
// ZipDemo1232.unZip(new File(("D:/123/123.zip")), "D:/123/");
// 明文文件路徑
String plainFilePath = "D:/req_20150204_0011.txt";
// 密文文件路徑
String secretFilePath = "req_20150204_00134.txt";
// 加密
// encodeAESFile(key, plainFilePath, secretFilePath);
fileDownloadByFtp("D://123.zip","123.zip","req/20150228");
ZipUtilAll.unZip("D://123.zip", "D:/123/李筱/");
// 解密
plainFilePath = "D:/123.sql";
// secretFilePath = "D:/test11111.sql";
// decodeAESFile(key, plainFilePath, secretFilePath);
} catch (Exception e) {
e.printStackTrace();
}
}

}

❸ 如何用java實現ftp客戶端程序

FTP 的主要操作都是基於各種命令基礎之上的。常用的命令有: · 設置傳輸模式,它包括ASCⅡ(文本) 和BINARY 二進制模式; · 目錄操作,改變或顯示遠程計算機的當前目錄(cd、dir/ls 命令); · 連接操作,open命令用於建立同遠程計算機的連接;close命令用於關閉連接; · 發送操作,put命令用於傳送文件到遠程計算機;mput 命令用於傳送多個文件到遠程計算機; · 獲取操作,get命令用於接收一個文件;mget命令用於接收多個文件。 編程思路 根據FTP 的工作原理,在主函數中建立一個伺服器套接字埠,等待客戶端請求,一旦客戶端請求被接受,伺服器程序就建立一個伺服器分線程,處理客戶端的命令。如果客戶端需要和伺服器端進行文件的傳輸,則建立一個新的套接字連接來完成文件的操作。 編程技巧說明 http://www.jacken.com.cn/Programming/Java/2008-10-24/Java-.html

❹ java開發ftp客戶端對伺服器文件狀態如何識別

我們當時是這樣處理的:

上傳一個文件,比如名字為:aaa.rar
當文件上傳完的時候就會上傳一個aaa.fin的空文件做標識,表明這個文件上傳成功。

下載的時候首先檢查aaa.fin是否存在。然後下載!

建議你在文件目錄下放一個list.xml(存放當前上傳成功的文件名,下載前在裡面檢索它是否存在)

❺ 如何用VC開發SFTP的客戶端

一、路由器下的FTP服務端:
路由器下的FTP服務端,需要解決一個「安全驗證」問題,IE客戶端會核對服務端的IP
地址,因為服務端是內外兩個IP,而使IE客戶端安全驗證失敗,但專業FTP客戶端CuteFTP9、LeapFTP3
可以不核對IP驗證,而使訪問成功,但用戶總是喜歡IE做客戶端,為此需要找一個解決「安全驗證」
的FTP服務端,FileZilla FTP Server就是最實用小巧的FTP理想服務端,只有1M多一點,非常小巧。

二、路由器下的FTP服務端要被外網IE訪問的因素:
1. FTP服務端WINDOWS電腦要關閉自帶的防火牆或設成FTP服務程序為「例外」;
2. 路由器下的電腦伺服器要設成路由器的DMZ主機,這樣服務端埠就.開.放在外網,
才能被外網所訪問,所以,服務端電腦要設成靜態IP如 192.168.1.10,並把路由器的
DMZ主機設為此IP,設DMZ後就不需要再設.端.口.映.射.了;
3. FileZilla FTP SERVER要設成被動方式PASV,並要指定一個外網IP,以解決NAT的安全驗
證問題,否則,客戶端不能被WINDOWS的IE所訪問,但能被CuteFTP訪問;
4. 外網的端.口不能被運營商所封或者不能是共享外網IP地址的NAT代理,埠會因NAT改變;
三、FileZilla FTP Server需要的設定:
1. 需要設定為 Passive被動模式:埠范圍可為設為 10000-10050
2. 指定的IP要設為外IP:以解決「安全驗證」問題
這個外IP就是將要被訪問的FTP://外IP
3. 用戶增加 anonymous,密碼不設,這是匿名方式;
4. 共享文件夾設成你的一個被訪問目錄;
5. 其它21號服務埠等預設參數不需改動。

四、程序說明:
一、FileZilla server.exe 這是後台服務程序,運行後啟動服務就可;
二、FileZilaa Server Interface.exe 這是界面管理程序,讓管理員設定參數的。

❻ 怎樣利用WinInet技術開發FTP客戶端程序

摘要:WinInet是微軟MFC類庫提供的Win32Internet擴展介面,利用WinInet開發人員可以方便地編寫出Internet客戶端程序。本文主要闡述利用WinInet在VC 2005中實現FTP客戶端程序的方法。相對於通常採用的IE瀏覽器,本FTP客戶端程序更加安全可靠。

關鍵詞:MFC;WinInet;FTP客戶端程序;VC 2005

一、WinInet概述

為了開發Internet客戶端程序,微軟的MFC類庫提供了專門的Win32Internet擴展介面,即WinInet。WinInet提供了Internet會話類CInternetSession、Internet連接類CInternetConnection、Internet文件類CInternetFile、Internet文件操作類CFileFind、Internet通用異常類CInternetException等類。WinInet為HTTP、FTP和Gopher提供了統一的函數集,用戶使用這些類可以大大簡化針對HTTP、FTP等協議的編程,特別是客戶端的編程。

二、建立FTP客戶端程序的步驟

FTP客戶端程序首先要建立與伺服器的連接,這需要一個CInternetSession和CFtpConnection對象,但並不需要直接創建CFtpConnection對象,而是通過調用CInternetSession::GetFtpConnection來實現;然後通知FTP伺服器改變目錄到當前服務目錄,通過CFtpConnection::SetCurrentDirectory實現;讀寫伺服器中的數據,必須創建一個CFtpFileFind的實例;找到第一個文件,如果文件沒找到返回FALSE,通過CFtpFileFind::FindFile實現;循環找下一個文件,如果文件沒找到返回FALSE,通過CFtpFileFind::FindNextFile實現;最後打開找到的文件進行相應的操作。

三、建立FTP客戶端程序的實例

1.功能描述

本FTP客戶端程序實現如下功能:通過用戶名、密碼(只要是合法的用戶名、密碼均可)登錄到指定的FTP伺服器,在文件列表框中列出FTP伺服器當前目錄所在的文件和目錄,然後以「另存為」對話框實現對選定文件的下載功能。

2.設計

(1)在VisualStudio2005創建一個名為FTPClient項目

項目類型:開發語言為VisualC 的基於對話框的MFC應用程序,設計對話框模板如圖1所示。

圖1FTPClient對話框模板

(2)為各控制項添加變數

為「FTP伺服器地址」文本框添加Cstring類型的變數m_strFTPServer;為「埠」文本框添加UINT類型的變數m_nFTPPort;為「用戶名」文本框添加Cstring類型的變數m_strUserName;為「密碼」文本框添加Cstring類型的變數m_strPassword,其Password屬性為TRUE;為「下載目錄」文本框添加Cstring類型的變數m_strFTPDirectory;為「下載目錄文件列表」列表框控制項添加CListBox類型的變數m_listFiles;為「連接」按鈕添加Cbutton類型的變數m_bnConnect;為「下載文件」按鈕添加Cbutton類型的變數m_bnDownloadFile。

3.實現

(1)建立與FTP伺服器的連接

為此需要在對話框類(FTPClientDlg.h)中添加CInternetSession類的對象m_Session和CFtpConnection對象指針m_pConnection兩個變數。為使程序可使用WinInet類,需要在stdafx.h中加入一個對afxinet.h和afx.h的包含。建立連接主要是通過單擊對話框中的「連接」按鈕來實現的(調用FTPClientDlg.cpp中的CFTPClientDlg::OnBnClickedButtonconnect()),其代碼如下。

voidCFTPClientDlg::OnBnClickedButtonconnect()

{

UpdateData(TRUE);//從對話框中獲取數據

if(!m_pConnection)//進行連接

{

if(m_strFTPServer!="")

{

//利用Internet對話對象m_Session打開一個FTP連接

m_pConnection=m_Session.GetFtpConnection(m_strFTPServer,m_strUserName,m_strPassword,m_nFTPPort);

if(m_pConnection)

{

//如果連接成功,則獲取當前目錄

m_pConnection->GetCurrentDirectory(m_strFTPDirectory);

//將「連接」按鈕改為「斷開連接」按鈕

m_bnConnect.SetWindowText(_T("斷開連接"));

LoadListofFtpFiles();//獲取文件列表

//FTP已連接,「下載文件」按鈕使能

m_bnDownloadFile.EnableWindow(TRUE);

UpdateData(FALSE);//更新對話框數據

}

}

}

else//斷開連接

{

m_pConnection->Close();//斷開連接並刪除連接對象

deletem_pConnection;

m_pConnection=NULL;//重置連接對象指針為NULL

//將「斷開連接」按鈕改為「連接」按鈕

m_bnConnect.SetWindowText(_T("連接"));

m_strFTPDirectory="";//重置目錄

m_listFiles.ResetContent();//清空列表框

//FTP斷開連接,「下載文件」按鈕Disable

m_bnDownloadFile.EnableWindow(FALSE);

UpdateData(FALSE);//更新對話框數據

}

}

BOOLCFTPClientDlg::OnInitDialog()

{

Cdialog::OnInitDialog();

…//省略原有代碼

//TODO:在此添加額外的初始化代碼

//設置默認的FTP伺服器名(IP)、埠、用戶名(匿名)和登錄密碼,目錄

m_strFTPServer=_T("192.168.0.1");//設置FTP的IP

m_nFTPPort=21;//設置FTP埠:默認的埠是21

m_strUserName=_T("user1");//設置登錄用戶名,默認的是匿名:user1

m_strPassword=_T("user1");//設置登錄密碼:user1

m_listFiles.ResetContent();//清空文件目錄列表

m_pConnection=NULL;//初始狀態FTP未連接,FTP連接類的指針變數初始化為空

//FTP未連接,「下載文件」按鈕Disable

m_bnDownloadFile.EnableWindow(FALSE);

UpdateData(FALSE);//交換數據,對話框顯示初始化內容

returnTRUE;//除非將焦點設置到控制項,否則返回TRUE

}

voidCFTPClientDlg::OnClose()

{

m_Session.Close();//在對話框關閉時關閉Internet連接

Cdialog::OnClose();

}

(2)讀FTP伺服器中的文件和目錄到列表框中

該功能是通過FTPClientDlg.cpp中的CFTPClientDlg::LoadListofFtpFiles(void)來實現的,其代碼如下。

voidCFTPClientDlg::LoadListofFtpFiles(void)

{

m_listFiles.ResetContent();//清空列表框

//構建一個FTP文件操作類對象,同時把FTP連接指針傳遞給該對象,

//打開一個文件查找對話

CFtpFileFindfFiles(m_pConnection);

CstringstrFileName;//用來保存文件名

BOOLbMoreFiles;//用來設置文件搜索狀態

//利用默認的方法找到第一個文件,同時找到文件列表

bMoreFiles=fFiles.FindFile(NULL);

while(bMoreFiles)//文件搜索,直到最後一個文件

{

bMoreFiles=fFiles.FindNextFile();//查找下一個文件

strFileName=fFiles.GetFileName();//獲取該文件名

if(fFiles.IsDirectory())//若為目錄,則在名後加一個標志

strFileName ="<DIR>";

m_listFiles.AddString(strFileName);//將文件名添加到列表框中

}

fFiles.Close();//關閉文件查找對話框

}

(3)下載FTP伺服器中的文件

下載文件是通過單擊對話框中的「下載文件」按鈕來實現的(調用FTPClientDlg.cpp中的CFTPClientDlg::OnBnClickedButtondownloadfile()),其具體實現是利用CFileDialog的保存功能來完成文件下載的,其主要代碼如下。

voidCFTPClientDlg::OnBnClickedButtondownloadfile()

{

UpdateData(TRUE);//從對話框中獲取數據

m_listFiles.GetText(m_listFiles.GetCurSel(),m_strFile);

//將列表框選中的項的值賦給m_strFile(選中的文件或目錄)

if(m_strFile!="")

{

if(m_strFile.Right(5)=="<DIR>")//判斷用戶選擇的是否目錄

MessageBox(_T("無法下載目錄!"));//如果是目錄,報錯

else

{

//打開文件對話框,詢問下載位置

CFileDialogfiledlg(FALSE,NULL,m_strFile);

if(filedlg.DoModal()==IDOK)

{

//確定地址後開始下載文件

if(!m_pConnection->GetFile(m_strFile,filedlg.GetFileName()))

MessageBox(_T("無法下載文件!"));//下載出錯

else

MessageBox(_T("文件下載完畢!"));//下載成功

}

}

}

}

4.最終實現界面,如圖2所示。

圖2程序運行界面

四、結束語

只要安裝.NET2.0且FTP伺服器能提供正常的服務,本客戶端程序可以運行在WindowsXP(SP2)、Windows2000pro/server下。若FTP伺服器沒有正常運行,則無法連接,提示:「與伺服器的連接被重置」。利用WinInet不僅可以實現FTP客戶端程序,還可以方便地編寫HTTP等其它客戶端程序。

參考文獻:

[1]VisualC#.NET面向程序設計教程趙衛偉機械工業出版社2006年5月第1版

[2]VisualC .NET應用編程150例王興晶電子工業出版社2003年8月第1版

[3]MSDN(msdn.microsoft.com)

Tags:
發布:crazyapple

❼ 怎麼用Java開發FTP客戶端

摘要
本文解釋了如何利用庫用Java語言編寫FTP客戶端代碼。它比較了FTP庫的一個完全列表,演示了每個庫的優點和缺點,並且幫助決策者為他們的需要選擇適當的庫。另外,本文闡述了Fa?ade模式如何在取代一個庫時改變管理。最後,作者Jean-Pierre Norguet討論並解決了由於缺乏權威性的說明書引起的一些問題。

讓我們假設一個情景:我們要編寫一個純Java應用程序,該程序必須從運行FTP伺服器的遠程計算機上下載文件。我們也通過遠程文件信息,像名字、日期、或者尺寸,來過濾下載。

自己來寫一個FTP協議處理,盡管是有可能,並且可能很有趣。但是這樣做也有可能有困難、花費長時間、並且有潛在的風險。既然我們不肯花費時間、精力、或者金錢自己來寫一個處理器,那我們推薦使用一個可重用的現有的軟體組件。萬維網上有並且大量的庫可供使用。有了一個FTP客戶端庫,下載一個文件用Java語言編寫就像下面一樣簡單:

FTPClient ftpClient = new FTPClient();

ftpClient.connect("ftp.foo.com", "user01", "pass1234");

ftpClient.download("C:\\Temp\\", "README.txt");

// Eventually other operations here ...

ftpClient.disconnect();

尋找一個適合我們需要的高質量的Java FTP客戶端庫並不像他看起來那麼簡單;它可能相當困難。要找到一個Java FTP客戶端庫需要花一些時間。接著,在我們找到所有的已存在的庫之後,我們選哪個?每個庫適合不同的需要。庫在質量上是不等的,並且它們的設計有本質的區別。每個提供一套不同的屬性和使用不同類型的行話來描述他們。

因此,計算和比較FTP客戶端庫證明是困難而且令人迷惑的。重復使用已存在的組件是一個值得推薦的過程,但在這個例子中,啟動它也是令人沮喪的。並且這有點羞愧:在選好的一個好的FTP庫之後,剩下的工作就是常式了。

本文旨在使選擇過程簡短、容易、並且有價值。我首先列出了所有的FTP客戶端庫。接著,我定義和描述了庫應該用某種方式找到的相關標準的一個表格。最後,我列出了一個總瀏覽的矩陣,該矩陣給出了庫間相互比較的過程的快速瀏覽。所有的信息提供了我們作出一個迅速、可靠、和長期的決定所需的每件事。

使用JDK(Java 開發工具集)的FTP支持
用於FTP的訪問規范是用於注釋的請求:959(RFC959)。Sun Microsystems提供了JDK的一個RFC959執行。但是它是內部的、非文檔化的、並且不提供任何資源。當RFC959在尚未公開時,它實際上是執行RFC1738、URL規范的一個公共界面的後終端。如圖1。

圖1. 使用JDK的FTP支持。

RFC1738的一個執行過程在JDK中作為標准給出。它為基本的FTP傳送做一個可推理的工作。它是公共的、文檔化的、並且提供源代碼。要使用它,我們可編寫下面語句:

URL url = new URL("ftp://user01:[email protected]/README.txt;type=i");

URLConnection urlc = url.openConnection();

InputStream is = urlc.getInputStream(); // To download

OutputStream os = urlc.getOutputStream(); // To upload

使用JDK的FTP客戶端嚴格的遵守標准推薦,但它有以下幾個說明:

它從根本上區別於第三方的FTP客戶端庫;這些執行RFC959而不是RFC1738

RFC959用大多數的桌面FTP客戶端工具執行。許多Java程序員使用這些工具連接到FTP伺服器上。作為一個嘗試,這些工具及有可能優先於類似的RFC959庫。

URL 和URLConnection類只開放用於通訊的流。Sun庫不為構造原始的FTP伺服器響應成為像String、 File、 RemoteFile、 或者 Calendar之類的更合用的Java對象而提供直接支持。所以我們不得不編寫更多的代碼,只是為了把數據寫入一個文件中或者開始一個目錄列表。

正像RFC1738的3.2部分解釋的一樣,"最優化",FTP URL在每個操作後要求關閉(控制)連接。這對於傳送許多小文件是一種浪費、並且毫無效率。而且,作了特別限制FTP伺服器可能把會這樣一個通訊開銷認為一個是惡毒的網路攻擊或者濫用而拒絕提供進一步的服務。

最後,它缺乏幾個有用的屬性。

由於以上所有或者某種原因,可優先使用一個第三方的庫。下面部分列出了可供選擇的第三方的庫。

見:http://www.javaworld.com/javaworld/jw-04-2003/ftp/jw-0404-ftptable.html

❽ ftp工具是什麼

1.什麼是FTP呢?FTP 是 TCP/IP 協議組中的協議之一,是英文File Transfer Protocol的縮寫。該協議是Internet文件傳送的基礎,它由一系列規格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。簡單的說,FTP就是完成兩台計算機之間的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為「下載(download)」文件。若將文件從自己計算機中拷貝至遠程計算機上,則稱之為「上載(upload)」文件。在TCP/IP協議中,FTP標准命令TCP埠號為21,Port方式數據埠為20。

2.FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。

3.ftp工具,就是專門用來進行FTP上傳下載的工具。常用FTP工具有:
CuteFTP Pro :CuteFTP Pro是一個全新的商業級FTP客戶端程序,其加強的文件傳輸系統能夠完全滿足今天的商家們的應用需求。這里文件通過構建於SSL或SSH2安全認證的客戶機/伺服器系統進行傳輸,為VPN、WAN、Extranet開發管理人員提供最經濟的解決方案!企業再不需要為了一套安全的數據傳輸系統而進行破費了。此外,CuteFTP Pro還提供了Sophisticated Scripting、目錄同步、自動排程、同時多站點連接、多協議支持(FTP、SFTP、HTTP、HTTPS)、智能覆蓋、整合的HTML編輯器等功能特點以及更加快速的文件傳輸系統。
LeapFTP:一款被多家網站評估為五星級、功能強大、能媲美BulletProof FTP的FTP軟體。跟Netscape相仿的書簽形式,連線更加方便。下載與上傳文件支持續傳。可下載或上傳整個目錄,亦可直接刪除整個目錄。可讓你編列順序一次下載或上傳同一站台中不同目錄下的文件。瀏覽網頁時若在文件連結上按滑鼠右鍵選[復制捷徑]便會自動下載該文件。具有不會因閑置過久而被站台踢出的功能。可直接編輯遠端Server上的文件。可設定文件傳送完畢自動中斷Modem連接。
FlashFXP:功能強大的 FXP / FTP 軟體,融合了一些其他優秀 FTP 軟體的優點,如像 CuteFTP 一樣可以比較文件夾,支持彩色文字顯示;像 BpFTP 支持多文件夾選擇文件,能夠緩存文件夾;像 LeapFTP一樣的外觀界面,甚至設計思路也差相彷彿。支持文件夾(帶子文件夾)的文件傳送、刪除;支持上傳、下載及第三方文件續傳;可以跳過指定的文件類型,只傳送需要的文件;可以自定義不同文件類型的顯示顏色;可以緩存遠端文件夾列表,支持FTP 代理及 Socks 3 & 4;具有避免空閑功能,防止被站點踢出;可以顯示或隱藏「隱藏」屬性的文件、文件夾;支持每個站點使用被動模式等。!
TurboFTP:一款絕對老牌的FTP傳輸工具。它支持斷線自動重新連接並自動恢復傳輸,文件列表過濾,遠程編輯,整個遠端目錄刪除,目錄上傳下載,斷點續傳, 多達八種的代理伺服器,完成傳送後自動掛線或關機,方便的 FTP 站點地址薄,等等。
ChinaFTP:ChinaFTP是一款完全由國人開發的免費的FTP客戶端軟體,軟體支持對文件傳輸的所有操作,支持MSDOS和Unix兩種目錄結構。ChinaFTP與伺服器的交互快,文件傳輸速度快,支持整個目錄及子目錄的上傳,軟體包含站點管理,方便用戶對所訪問的站點進行訪問保存,無需每次訪問時都輸入伺服器名、用戶名和密碼。簡單的操作和方便的管理,軟體界面清晰,左側為本地磁碟文件,右側為FTP文件伺服器。文件上傳下載顯示進度查看、已傳送位元組、傳輸速度顯示、伺服器狀態顯示等。
AceFTP Pro:相當強大且好用的FTP軟體,使用者只需以軟體本身的浮動按鈕即會操作,它提供多文件下載,且可同時至多個Sever下載,使用者更可邊上FTP下載文件,邊瀏覽網頁一個FTP軟體,結合了瀏覽器與FTP的功能,它可以在下載或上傳文件之前先預覽 GIF、JPG和 HTML的文件,並且你可以在同一個視窗下開啟多個遠端的目錄或是登入多個遠端的FTP伺服器,你也可以直接輸入欲下載文件的位址來下載文件,支持 FTP 和 HTTP。
EmFTP Pro:EmFTP 是一個易於使用的,高品質的 FTP 客戶端軟體。EmFTP 是共享軟體。EmFTP 可以與 EmEditor (Windows 下很好用的一個文本編輯器)很好的結合在一起。如果你已安裝 EmEditor,你可以直接編輯一個伺服器上的文件,就像編輯一個本地文件一樣。同樣,你可以可以非常容易的從其他客戶端中導入設置,例如:FFFTP、Internet Explorer、WS_FTP。 同步上傳功能可以直接復制本地文件夾的正確結構到伺服器上。
以上幾個軟體下載地址,請參考網頁http://bbs.zj.chinavnet.com/topic_show.jsp?id=1463289&oldpage=1&thesisid=45&flag=topic1

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:710
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:973
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:684
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:836
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:742
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1083
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:313
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:193
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:881
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:839