下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、packagecom.yokoto.utils;importjava.io.File;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.RandomAccessFile;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;.ftp.FTP;.ftp.FTPClient;.ftp.FTPClientConfig;
2、.ftp.FTPFile;.ftp.FTPReply;importandroid.os.Handler;publicclassFtpUtil/*連接 FTP 服務器*paramport* paramusername* parampassword* return* authorLouison2010-11-27&memoryCatV1.0*/publicstaticFTPClientconnectFtp(StringserverUrl,intport,Stringusername,Stringpassword)serverUrl=EncryptUtil.decode(serverUrl)
3、;username=EncryptUtil.decode(username);password=EncryptUtil.decode(password);FTPClientftp=newFTPClient();ftp.setControlEncoding(GBK);tryif(port=0)ftp.connect(serverUrl);elseftp.connect(serverUrl,port);if(ftp.login(username,password)FTPClientConfigconf=newFTPClientConfig(getSystemKey(ftp.getSystemNam
4、e();conf.setServerLanguageCode(zh);ftp.configure(conf);intreply=ftp.getReplyCode();if(!FTPReply.isPositiveCompletion(reply)ftp.disconnect();ftp.logout();elseftp.enterLocalPassiveMode();ftp.setFileType(FTP.BINARY_FILE_TYPE);returnftp;elsereturnnull;catch(IOExceptione)returnnull;returnnull;publicstati
5、cvoiduploadFile(FTPClientftp,StringserverDir,StringlocalFile,handler,Stringmessage)uploadFile(ftp,serverDir,newFile(localFile),handler,message);/*上載本地文件到 FTP 目錄*paramftp*paramserverDirFTP 目錄*paramlocalFile本地文件*authorLouison2010-11-29&memoryCatV1.0*/publicstaticvoiduploadFile(FTPClientftp,Strings
6、erverDir,FilelocalFile,handler,Stringmessage)tryftp.initiateListParsing();FTPFile 口 remoteFiles=ftp.listFiles();if(localFile.isFile()HandlerHandlerStringname=localFile.getName();/假如服務器不存在這個目錄,則創(chuàng)建它(只支持 mkdir,不支持 mkdirs 的多級目錄創(chuàng)建)if(ftp.listFiles(serverDir)=null|ftp.listFiles(serverDir).length=0)ftp.mak
7、eDirectory(serverDir);OutputStreamos=ftp.storeFileStream(serverDir+name);if(os!=null)RandomAccessFileraf=newRandomAccessFile(localFile,rw);/如果遠程文件存在,并且小于當前文件大小FTPFileremoteFile=existsFile(remoteFiles,localFile);if(remoteFile!=null&raf.length()=remoteFile.getSize()raf.seek(remoteFile.getSize();lo
8、ngupLoadFileSize=0;byte 口 buf=newbyte1024;do/循環(huán)讀取,每次讀取 1kbintnumread=raf.read(buf);if(numread=-1)break;)os.write(buf,0,numread);os.flush();upLoadFileSize+=numread;if(message!=null)HandlerUtil.updateTitle(handler,message+(upLoadFileSize/1024)+kb);)while(true);raf.close();os.close();if(pletePendingCom
9、mand()System.out.println(done!);elseSystem.out.println(cantputfile:+name);elseSystem.out.println(cantputfile:+name);/TODOAuto-generatedcatchblocke.printStackTrace();/*上載本地目錄到 FTP 目錄* paramftp* paramserverDir* paramlocalDir* throwsIOException* /privatestaticvoiduploadFiles(FTPClientftp,StringserverDi
10、r,FilelocalDir)tryftp.initiateListParsing();FTPFile 口 remoteFiles=ftp.listFiles();FilelocalFiles=localDir.listFiles();for(Filefile:localFiles)if(file.isFile()Stringname=file.getName();intcount=ftp.list(serverDir);if(count=0)ftp.makeDirectory(serverDir);)OutputStreamos=ftp.storeFileStream(serverDir+n
11、ame);if(os!=null)RandomAccessFileraf=newRandomAccessFile(file,rw);/如果遠程文件存在,并且小于當前文件大小FTPFileremoteFile=existsFile(remoteFiles,file);if(remoteFile!=null&raf.length()=remoteFile.getSize()raf.seek(remoteFile.getSize();)bytebuf=newbyte1024;do/循環(huán)讀取,每次讀取 1kbintnumread=raf.read(buf);if(numread=-1)brea
12、k;)os.write(buf,0,numread);os.flush();while(true);raf.close();os.close();if(pletePendingCommand()System.out.println(done!);elseSystem.out.println(cantputfile:+name);elseSystem.out.println(cantputfile:+name);catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();/*下載 FTP 文件到本地文件*paramftp
13、*paramserverDir* paramlocalDir* throwslOException*/publicstaticvoiddownloadFile(FTPClientftp,StringserverFile,FilelocalFile,Handlerhandler,Stringmessage)tryif(!localFile.exists()localFile.createNewFile();elselocalFile.delete();localFile.createNewFile();longpos=localFile.length();RandomAccessFileraf=
14、newRandomAccessFile(localFile,rw);raf.seek(pos);ftp.setRestartOffset(pos);InputStreamis=ftp.retrieveFileStream(serverFile);if(is=null)System.out.println(nosuchfile:);elselongdownLoadFileSize=0;bytebuf=newbyte1024;do/循環(huán)讀取,每次讀取 1kbintnumread=is.read(buf);if(numread=-1)break;raf.write(buf,0,numread);do
15、wnLoadFileSize+=numread;if(message!=null)HandlerUtil.updateTitle(handler,message+(downLoadFileSize/1024)+KB);while(true);is.close();if(pletePendingCommand()System.out.println(done!);elseSystem.out.println(cantgetfile:);raf.close();catch(lOExceptione)e.printStackTrace();/* 判斷 FTP 服務器上是否存在某文件* paramft
16、p* paramserverDir* paramserverFile* return* authorLouison2010-11-27&memoryCatV1.0*/publicstaticbooleancheckFileExist(FTPClientftp,StringserverDir,StringserverFile)FTPFilefiles=null;tryfiles=ftp.listFiles(serverDir);/TODOAuto-generatedcatchblocke.printStackTrace();)if(files!=null&files.length
17、0)for(FTPFile 即 File:files)if(serverFile.equals(ftpFile.getName()returntrue;)returnfalse;)/* 找到 FTP 目錄下某種類型文件* paramftp* paramserverDir* paramfileType* 如:zip 類型* return*authorLouison2010-11-27&memoryCatV1.0*/publicstaticStringfindSDCardFile(FTPClientftp,StringserverDir,finalStringfileType)(FTPFi
18、lefiles=null;try(files=ftp.listFiles(serverDir);catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();Listlist=newArrayList();if(files!=null&files.length0)for(FTPFile 即 File:files)if(ftpFile.getName().endsWith(fileType)list.add(ftpFile.getName();Collections.sort(list,newComparator(
19、)Overridepublicintcompare(Stringstr1,Stringstr2)pareTo(str1););Stringret=newStringlist.size();returnlist.toArray(ret);/* 創(chuàng)建 FTP 上目錄* paramserverDir* return* authorLouison2010-11-27&memoryCatV1.0*/publicstaticbooleancreateDir(FTPClientftp,StringserverDir)FTPFilefiles=null;tryfiles=ftp.listFiles(s
20、erverDir);if(files=null|files.length=0)ftp.makeDirectory(serverDir);catch(lOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();returntrue;/* 退出 FTP 服務器* paramftp* authorLouison2010-11-27&memoryCatV1.0*/publicstaticvoidlogout(FTPClientftp)tryif(ftp!=null&ftp.isConnected()ftp.logout();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();/*Function:* paramsystemName* return* authorLouisFeb26,2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同 仲裁訴訟條款
- 大班音樂繪本《月光長廊》課件
- 2024上海市非定期集裝箱道路貨物運輸合同
- 三年級語文上冊第一單元測試卷-基礎知識與綜合能力篇 含答案 部編版
- 2024家庭水電裝修合同書
- 2024收銀員聘用合同
- 2024標準銷售代理合同格式
- 深圳大學《哲學經(jīng)典與人生》2021-2022學年第一學期期末試卷
- 深圳大學《形體訓練(流行舞蹈)》2022-2023學年第一學期期末試卷
- 合同樣本-土建合同范本8篇
- 2024下半年江蘇蘇州城市學院招聘管理崗位工作人員27人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 小學心理健康課教案分享-《身體“紅綠燈”》
- 2022年信息科技課程新課標義務教育信息科技課程標準2022版解讀課件
- 小學生防火安全教育課件
- 口語交際:商量(教學設計)2023-2024學年統(tǒng)編版語文二年級上冊
- 鄉(xiāng)土嵌合:農村社會工作的實踐面向與行動路徑
- 2024年大學生信息素養(yǎng)大賽(省賽)考試題庫(含答案)
- 北京市行測真題和答案
- 國資國企企業(yè)學習二十屆三中全會精神專題培訓
- 影片制片人合同
- 過敏性紫癜的護理培訓課件
評論
0/150
提交評論