Ⅰ java FTP下載文件在代碼中如何實現知道下載完成
(KmConfigkmConfig,StringfileName,StringclientFileName,OutputStreamoutputStream){
try{
StringftpHost=kmConfig.getFtpHost();
intport=kmConfig.getFtpPort();
StringuserName=kmConfig.getFtpUser();
StringpassWord=kmConfig.getFtpPassword();
Stringpath=kmConfig.getFtpPath();
FtpClientftpClient=newFtpClient(ftpHost,port);//ftpHost為FTP伺服器的IP地址,port為FTP伺服器的登陸埠,ftpHost為String型,port為int型。
ftpClient.login(userName,passWord);//userName、passWord分別為FTP伺服器的登陸用戶名和密碼
ftpClient.binary();
ftpClient.cd(path);//path為FTP伺服器上保存上傳文件的路徑。
try{
TelnetInputStreamin=ftpClient.get(fileName);
byte[]bytes=newbyte[1024];
intcnt=0;
while((cnt=in.read(bytes,0,bytes.length))!=-1){
outputStream.write(bytes,0,cnt);
}
//##############################################
//這里文件就已經下載完了,自己理解一下
//#############################################
outputStream.close();
in.close();
}catch(Exceptione){
ftpClient.closeServer();
e.printStackTrace();
}
ftpClient.closeServer();
}catch(Exceptione){
System.out.println("下載文件失敗!請檢查系統FTP設置,並確認FTP服務啟動");
}
}
Ⅱ C語言實現從FTP下載、上傳文件
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。
1.C語言可以使用CStdioFile函數打開本地文件。使用類CInternetSession 創建並初始化一個Internet打開FTP伺服器文件。
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。
流式文件是被緩沖的,而且可以以文本方式(預設)或二進制方式打開。文本方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,位元組對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,位元組對(0x0D,0x0A)被翻譯為一個位元組(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
使用類CInternetSession 創建並初始化一個或多個同時的Internet 會話。如果需要,還可描述與代理伺服器的連接。
如果Internet連接必須在應用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函數AfxParseURL來為分析映射URL。無論協議類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源「file://」標志的本地文件的請求。如果傳給它的名字是本地文件,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連接。
Ⅲ 使用網際網路的FTP功能,可以實現文件的上傳和下載
能。
ftp的主要功能是連接到FTP伺服器並操縱數據和數據的上傳下載以及備份,還有就是可以訪問物理遠程伺服器。
用戶將文件從FTP伺服器中拷貝並傳輸到終端機的過程就是下載(download)。上傳和下載過程是所能用到的再常見不過的操作過程。由於FTP伺服器承擔有文件存儲和傳播的重任,所以其與用戶的連接也有著三重限制。FTP伺服器在使用前必須要先登錄獲取遠程連接後,用戶才能接觸到所需文件。
(3)ftp下載文件實現擴展閱讀:
注意事項:
避免出現零位元組文件。在上傳時,不要隨意中途停止操作,最好不要中途下線。
上傳文件要附上說明的文本文件,說明文件名應與文件名稱相同,如文件名稱為note.zip,說明文件名就應為note.txt,以方便別人了解你的文件內容,來進行取捨。
因為FTP站是多用戶系統,因此對於同一個目錄或文件,不同的用戶擁有不同的許可權。如果不能上傳或下載某些文件,或者抓下來的文件是零位元組,一般是因為用戶的許可權不夠。
Ⅳ vb如何實現FTP下載
Call Inet1.Execute(,"put 本地地址\文件名 ftp地址\文件名")『上傳ftp文件代碼
Call Inet1.Execute(,"get ftp地址\文件名 本地地址\文件名")』下載ftp文件代碼
你要在inet1的自定義中設置好
Ⅳ 如何實現window系統cmd環境下從遠程FTP伺服器上下載文件的方法
我們總會遇到這樣或那樣的問題,window系統cmd環境下從遠程FTP伺服器上下載文件是怎麼實現的呢?
看看下面的方法,也許對你有幫助:
@echo off
rem 指定FTP用戶名
set ftpUser=FTPUSERYGL
rem 指定FTP密碼
set ftpPass=FTPUSER
rem 指定FTP伺服器地址
set ftpIP=10.16.12.101
rem 指定待下載的文件位於FTP伺服器的哪個目錄
set ftpFolder=/MBX-YGL-IN/UE0620/MBX-YGL-FTP/
rem 指定從FTP下載下來的文件存放到本機哪個目錄
set LocalFolder=D:/Download
set ftpFile=%temp%/TempFTP.txt
>"%ftpFile%" (
echo,%ftpUser%
echo,%ftpPass%
echo cd "%ftpFolder%"
echo lcd "%LocalFolder%"
echo bin
echo mget *.*
echo bye
)
start ftp -v -i -s:"%ftpFile%" %ftpIP%
Ⅵ 批處理來完成FTP文件自動下載
前幾天筆者遇到一個需求,在windows平台下使用ftp來遠程獲取交換機的配置文件。鑒於每一次都需要在命令行裡面手動輸入,過程繁瑣,於是想著使用腳本來完成這個重復性的工作,實現自動化。python的ftplib庫也可以解決這個問題,但是筆者未來和其他bat腳本揉在一起,直接windows平台下使用批處理bat來完成。
ftp -s可以指定包含ftp命令的文本文件,ftp啟動後這些命令將自動運行。
主批處理文件:ftp_main.bat
ftp命令批處理文件:ftp_task.bat,文件放置於D盤下。
除了FTP之外,date修改電腦日期,time修改電腦時間,echo ^G測試電腦聲音。注意,「^G」是在命令行中使用ctrl + g輸入的,可以使用echo ^G > test.txt來獲取這個字元。
最後這個腳本東湊西湊,界面如下:
Ⅶ 兩台電腦怎麼通過ftp下載文件
在兩台計算機之間傳輸數據吧,如果只是傳數據,使用共享文件夾就可以!
方法如下:1。在我的電腦D盤,建立一個文件夾D:/share2。在share文件夾上點右鍵,選擇共享,找到「網路共享和安全」,勾選「在網路上共享這個文件夾」項3。查看下本機的IP(如:192.168.1.23)或是計算機名(pc1),4。在另一台計算機上,當然得保證在同一網段,打開我的電腦,在地址欄輸入開啟共享機的IP地地址如:\\192.168.1.23,如果共享成功,就可以看到share文件夾,就可以相互傳文件了
另外如果使用FTP的話,其實不能叫傳文件,這個方法實際是建立一個FTP伺服器,然後讓客戶機去訪問FTP伺服器,從FTP上下載文件到本地計算機,當然這個的目的,也是為了實現文件交換。方法如下:1。上網下載FTP伺服器軟體,如cuteFTP或是HomeFTP(推薦,主要是配置簡單易用),或是直接在操作系統上安裝IIS伺服器(這個只能是windows系統)然後應用IIS的FTP功能也可以實現FTP,當然也可以用其它的FTP伺服器;這里以HOMEFTPServer為例講解2。安裝下載好的HOMEFTP伺服器,安裝好之後進行配置
1點擊設置,可以配置匿名用戶,指定目錄,即FTP文件伺服器目錄(如:D:\FTPRoot),也可以配置虛擬目錄,配置後可以將其它盤(F:\share)的目錄虛擬到FTPRoot下,而可以獲得FTPRoot的許可權;這個伺服器就這點最精典
2點擊新增成員,可以添加新用戶,即非匿名用戶,可以配置許可權和虛擬目錄;
3配置好之後點擊開始服務啟動FTP伺服器
4查看伺服器(裝有FTP軟體的計算機)的IP地址如:192.168.1.233。在客戶機,打開我的電腦,在地址欄輸入ftp://192.168.1.23如果配置成功,即可以訪問FTP伺服器,如果開啟文件上傳許可權,可以上傳或下載文件
當然也可以下載一個FTP伺服器客戶端工具,即可以訪問
注意:如果沒安裝FTP客戶端,使用非匿名用戶訪問時要用到帳號和密碼,格式為:ftp://用戶:密碼@伺服器IP如:ftp://admin:[email protected]登陸後,獲得admin用戶的所有許可權
Ⅷ ftp中的文件怎麼下載
用瀏覽器,打開FTP伺服器後,登錄,只要當前的帳號有列表和下載的許可權,就能看到文件,在文件上直接拖放到本地,即可下載。
或者在文件上右鍵,選擇目標另存為,也可以下載並保存到當前電腦中。
Ⅸ 如何從FTP下載文件
樓主
20cn貌似有黑色基因,會被殺軟誤殺吧.雖然我也很喜歡它的快捷、簡便.但是被誤殺著實頭痛.
Serv-U不算復雜啊.況且有漢化版.抱歉,稍微跑題了.
拿你的20cn來說事吧.你在配置伺服器之前需要一個外網IP.這個知識如果不具備後面提到的信息請無視之.
然後你需要知道你的外網IP多少.當然你如果每次獲取IP嫌棄麻煩.你可以去申請免費花生殼這樣你好我好大家好.
然後20cn中設置路徑以及用戶名.如果無限制請選擇匿名登錄.
然後登錄格式為:
ftp://username:password@IP or Domain/path
完畢 給分
Ⅹ C#通過FTP下載文件夾
第一部分是實現單個文件下載的方法
///<summary>
///單個文件下載方法
///</summary>
///<paramname="adss">保存文件的本地路徑</param>
///<paramname="ftpadss">下載文件的FTP路徑</param>
publicvoiddownload(stringadss,stringftpadss)
{
//FileMode常數確定如何打開或創建文件,指定操作系統應創建新文件。
//FileMode.Create如果文件已存在,它將被改寫
FileStreamoutputStream=newFileStream(adss,FileMode.Create);
FtpWebRequestdownRequest=(FtpWebRequest)WebRequest.Create(newUri(ftpadss));
//設置要發送到FTP伺服器的命令
downRequest.Method=WebRequestMethods.Ftp.DownloadFile;
FtpWebResponseresponse=(FtpWebResponse)downRequest.GetResponse();
StreamftpStream=response.GetResponseStream();
longcl=response.ContentLength;
intbufferSize=2048;
intreadCount;
byte[]buffer=newbyte[bufferSize];
readCount=ftpStream.Read(buffer,0,bufferSize);
while(readCount>0)
{
outputStream.Write(buffer,0,readCount);
readCount=ftpStream.Read(buffer,0,bufferSize);
}
ftpStream.Close();
outputStream.Close();
response.Close();
}
第二個部分也就是需要遍歷出所指定的文件夾內所有內容
首先是一個單個遍歷文件夾獲取文件夾下所有文件信息的方法
///</summary>
///<paramname="ftpads">FTP地址路徑</param>
///<paramname="name">我們所選擇的文件或者文件夾名字</param>
///<paramname="type">要發送到FTP伺服器的命令</param>
///<returns></returns>
publicstring[]ftp(stringftpads,stringname,stringtype)
{
WebResponsewebresp=null;
StreamReaderftpFileListReader=null;
FtpWebRequestftpRequest=null;
try
{
ftpRequest=(FtpWebRequest)WebRequest.Create(newUri(ftpads+name));
ftpRequest.Method=type;
webresp=ftpRequest.GetResponse();
ftpFileListReader=newStreamReader(webresp.GetResponseStream(),Encoding.Default);
}
catch(Exceptionex)
{
ex.ToString();
}
StringBuilderstr=newStringBuilder();
stringline=ftpFileListReader.ReadLine();
while(line!=null)
{
str.Append(line);
str.Append("/n");
line=ftpFileListReader.ReadLine();
}
string[]fen=str.ToString().Split('/n');
returnfen;
}
之後是一個我們實現遞歸文件夾的方法
///<summary>
///下載方法KO
///</summary>
///<paramname="ftpads">FTP路徑</param>
///<paramname="name">需要下載文件路徑</param>
///<paramname="Myads">保存的本地路徑</param>
publicvoiddownftp(stringftpads,stringname,stringMyads)
{
stringdownloadDir=Myads+name;
stringftpdir=ftpads+name;
string[]fullname=ftp(ftpads,name,WebRequestMethods.Ftp.ListDirectoryDetails);
//判斷是否為單個文件
if(fullname.Length<=2)
{
if(fullname[fullname.Length-1]=="")
{
download(downloadDir+"/"+name,ftpads+name+"/"+name);
}
}
else
{
string[]onlyname=ftp(ftpads,name,WebRequestMethods.Ftp.ListDirectory);
if(!Directory.Exists(downloadDir))
{
Directory.CreateDirectory(downloadDir);
}
foreach(stringnamesinfullname)
{
//判斷是否具有文件夾標識<DIR>
if(names.Contains("<DIR>"))
{
stringolname=names.Split(newstring[]{"<DIR>"},
StringSplitOptions.None)[1].Trim();
downftp(ftpdir,"//"+olname,downloadDir);
}
else
{
foreach(stringonlynamesinonlyname)
{
if(onlynames==""||onlynames==""||names=="")
{
break;
}
else
{
if(names.Contains(""+onlynames))
{
download(downloadDir+"/"+onlynames,ftpads+name+"/"+
onlynames);
break;
}
}
}
}
}
}
}
在使用WebRequestMethods.Ftp.ListDirectoryDetails取得文件夾下所有內容時,會發現如果其中有文件夾,那麼文件夾的的詳細信息中會有一個"<DIR>"標識,我們就可以通過這個來將其區分開來
同時在獲取文件夾以及文件名稱時用到WebRequestMethods.Ftp.ListDirectory,這個指令能過只獲得文件夾下所有文件包括文件夾的名字,通過這兩個指令所獲取的信息逐一比較,便能確定出文件或文件夾名以傳遞到download和downftp方法中