ftpjava上傳-九游会j9娱乐平台
�0�2我知道apache有個commons net包,其中的ftpclient類可以實現客戶端和服務之間的文件傳輸,但是我如果使用這種方式的話,就得將一台伺服器上的文件傳到我本地,再將這個文件傳到另一台伺服器上,感覺這中間多了一步操作;我想請問大家如何能不通過本機,直接操作兩台伺服器,將文件從一台伺服器傳到另一台伺服器上,如果有人知道實現方式,希望不吝賜教,謝謝了!問題補充:
b. 如何在java程序中實現ftp的上傳下載功能麻煩告訴我
以下是這三部分的java源程序:(1)顯示ftp伺服器上的文件 void ftplist_actionperformed(actionevent e) { string server=serveredit.gettext(); //輸入的ftp伺服器的ip地址 string user=useredit.gettext(); //登錄ftp伺服器的用戶名 string password=passwordedit.gettext(); //登錄ftp伺服器的用戶名的口令 string path=pathedit.gettext(); //ftp伺服器上的路徑 try { ftpclient ftpclient=new ftpclient(); //創建ftpclient對象 ftpclient.openserver(server); //連接ftp伺服器 ftpclient.login(user, password); //登錄ftp伺服器 if (path.length()!=0) ftpclient.cd(path); telnetinputstream is=ftpclient.list(); int c; while ((c=is.read())!=-1) { system.out.print((char) c);} is.close(); ftpclient.closeserver();//退出ftp伺服器 } catch (ioexception ex) {;} }(2)從ftp伺服器上下傳一個文件 void getbutton_actionperformed(actionevent e) { string server=serveredit.gettext(); string user=useredit.gettext(); string password=passwordedit.gettext(); string path=pathedit.gettext(); string filename=filenameedit.gettext(); try { ftpclient ftpclient=new ftpclient(); ftpclient.openserver(server); ftpclient.login(user, password); if (path.length()!=0) ftpclient.cd(path); ftpclient.binary(); telnetinputstream is=ftpclient.get(filename); file file_out=new file(filename); fileoutputstream os=new fileoutputstream(file_out); byte[] bytes=new byte[1024]; int c; while ((c=is.read(bytes))!=-1) { os.write(bytes,0,c); } is.close(); os.close(); ftpclient.closeserver(); } catch (ioexception ex) {;} }(3)向ftp伺服器上上傳一個文件 void putbutton_actionperformed(actionevent e) { string server=serveredit.gettext(); string user=useredit.gettext(); string password=passwordedit.gettext(); string path=pathedit.gettext(); string filename=filenameedit.gettext(); try { ftpclientftpclient=new ftpclient(); ftpclient.openserver(server); ftpclient.login(user, password); if (path.length()!=0) ftpclient.cd(path); ftpclient.binary(); telnetoutputstream os=ftpclient.put(filename); file file_in=new file(filename); fileinputstream is=new fileinputstream(file_in); byte[] bytes=new byte[1024]; int c; while ((c=is.read(bytes))!=-1){ os.write(bytes,0,c);} is.close(); os.close(); ftpclient.closeserver(); } catch (ioexception ex) {;} } }(責任編輯:董建偉)
c. java ftp上傳時斷網,文件損壞
以二進制流上傳,然後實現斷點續傳。
/**
* 上傳文件到ftp伺服器,支持斷點續傳
* @param local 本地文件名稱,絕對路徑
* @param remote 遠程文件路徑,使用/home/directory1/subdirectory/file.ext 按照linux上的路徑指定方式,支持多級目錄嵌套,支持遞歸創建不存在的目錄結構
* @return 上傳結果
* @throws ioexception
*/
public uploadstatus upload(string local,string remote) throws ioexception{
ftpclient ftpclient = new ftpclient();
//設置passivemode傳輸
ftpclient.enterlocalpassivemode();
//設置以二進制流的方式傳輸
ftpclient.setfiletype(ftp.binary_file_type);
uploadstatus result;
//對遠程目錄的處理
string remotefilename = remote;
if(remote.contains("/")){
remotefilename = remote.substring(remote.lastindexof("/") 1);
string directory = remote.substring(0,remote.lastindexof("/") 1);
if(!directory.equalsignorecase("/")&&!ftpclient.changeworkingdirectory(directory)){
//如果遠程目錄不存在,則遞歸創建遠程伺服器目錄
int start=0;
int end = 0;
if(directory.startswith("/")){
start = 1;
}else{
start = 0;
}
end = directory.indexof("/",start);
while(true){
string subdirectory = remote.substring(start,end);
if(!ftpclient.changeworkingdirectory(subdirectory)){
if(ftpclient.makedirectory(subdirectory)){
ftpclient.changeworkingdirectory(subdirectory);
}else {
system.out.println("創建目錄失敗");
return uploadstatus.create_directory_fail;
}
}
start = end 1;
end = directory.indexof("/",start);
//檢查所有目錄是否創建完畢
if(end <= start){
break;
}
}
}
}
//檢查遠程是否存在文件
ftpfile[] files = ftpclient.listfiles(remotefilename);
if(files.length == 1){
long remotesize = files[0].getsize();
file f = new file(local);
long localsize = f.length();
if(remotesize==localsize){
return uploadstatus.file_exits;
}else if(remotesize > localsize){
return uploadstatus.remote_bigger_local;
}
//嘗試移動文件內讀取指針,實現斷點續傳
inputstream is = new fileinputstream(f);
if(is.skip(remotesize)==remotesize){
ftpclient.setrestartoffset(remotesize);
if(ftpclient.storefile(remote, is)){
return uploadstatus.upload_from_break_success;
}
}
//如果斷點續傳沒有成功,則刪除伺服器上文件,重新上傳
if(!ftpclient.deletefile(remotefilename)){
return uploadstatus.delete_remote_faild;
}
is = new fileinputstream(f);
if(ftpclient.storefile(remote, is)){
result = uploadstatus.upload_new_file_success;
}else{
result = uploadstatus.upload_new_file_failed;
}
is.close();
}else {
inputstream is = new fileinputstream(local);
if(ftpclient.storefile(remotefilename, is)){
result = uploadstatus.upload_new_file_success;
}else{
result = uploadstatus.upload_new_file_failed;
}
is.close();
}
return result;
}
d. 怎麼用java實現ftp上傳
sun.net.ftp.ftpclient.,該類庫主要提供了用於建立ftp連接的類。利用這些類的方法,編程人員可以遠程登錄到ftp伺服器,列舉該伺服器上的目錄,設置傳輸協議,以及傳送文件。ftpclient類涵蓋了幾乎所有ftp的功能,ftpclient的實例變數保存了有關建立"代理"的各種信息。下面給出了這些實例變數:
public static boolean useftpproxy
這個變數用於表明ftp傳輸過程中是否使用了一個代理,因此,它實際上是一個標記,此標記若為true,表明使用了一個代理主機。
public static string ftpproxyhost
此變數只有在變數useftpproxy為true時才有效,用於保存代理主機名。
public static int ftpproxyport此變數只有在變數useftpproxy為true時才有效,用於保存代理主機的埠地址。
ftpclient有三種不同形式的構造函數,如下所示:
1、public ftpclient(string hostname,int port)
此構造函數利用給出的主機名和埠號建立一條ftp連接。
2、public ftpclient(string hostname)
此構造函數利用給出的主機名建立一條ftp連接,使用默認埠號。
3、ftpclient()
此構造函數將創建一ftpclient類,但不建立ftp連接。這時,ftp連接可以用openserver方法建立。
一旦建立了類ftpclient,就可以用這個類的方法來打開與ftp伺服器的連接。類ftpclient提供了如下兩個可用於打開與ftp伺服器之間的連接的方法。
public void openserver(string hostname)
這個方法用於建立一條與指定主機上的ftp伺服器的連接,使用默認埠號。
public void openserver(string host,int port)
這個方法用於建立一條與指定主機、指定埠上的ftp伺服器的連接。
打開連接之後,接下來的工作是注冊到ftp伺服器。這時需要利用下面的方法。
public void login(string username,string password)
此方法利用參數username和password登錄到ftp伺服器。使用過intemet的用戶應該知道,匿名ftp伺服器的登錄用戶名為anonymous,密碼一般用自己的電子郵件地址。
下面是ftpclient類所提供的一些控制命令。
public void cd(string remotedirectory):該命令用於把遠程系統上的目錄切換到參數remotedirectory所指定的目錄。
public void cdup():該命令用於把遠程系統上的目錄切換到上一級目錄。
public string pwd():該命令可顯示遠程系統上的目錄狀態。
public void binary():該命令可把傳輸格式設置為二進制格式。
public void ascii():該命令可把傳輸協議設置為ascii碼格式。
public void rename(string string,string string1):該命令可對遠程系統上的目錄或者文件進行重命名操作。
除了上述方法外,類ftpclient還提供了可用於傳遞並檢索目錄清單和文件的若干方法。這些方法返回的是可供讀或寫的輸入、輸出流。下面是其中一些主要的方法。
public telnetinputstream list()
返回與遠程機器上當前目錄相對應的輸入流。
public telnetinputstream get(string filename)
獲取遠程機器上的文件filename,藉助telnetinputstream把該文件傳送到本地。
public telnetoutputstream put(string filename)
以寫方式打開一輸出流,通過這一輸出流把文件filename傳送到遠程計算機
package myutil;
import java.io.datainputstream;
import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.outputstream;
import java.util.arraylist;
import java.util.list;
import java.util.stringtokenizer;
import sun.net.telnetinputstream;
import sun.net.telnetoutputstream;
import sun.net.ftp.ftpclient;
/**
* ftp上傳,下載
*
* @author why 2009-07-30
*
*/
public class ftputil {
private string ip = "";
private string username = "";
private string password = "";
private int port = -1;
private string path = "";
ftpclient ftpclient = null;
outputstream os = null;
fileinputstream is = null;
public ftputil(string serverip, string username, string password) {
this.ip = serverip;
this.username = username;
this.password = password;
}
public ftputil(string serverip, int port, string username, string password) {
this.ip = serverip;
this.username = username;
this.password = password;
this.port = port;
}
/**
* 連接ftp伺服器
*
* @throws ioexception
*/
public boolean connectserver() {
ftpclient = new ftpclient();
try {
if (this.port != -1) {
ftpclient.openserver(this.ip, this.port);
} else {
ftpclient.openserver(this.ip);
}
ftpclient.login(this.username, this.password);
if (this.path.length() != 0) {
ftpclient.cd(this.path);// path是ftp服務下主目錄的子目錄
}
ftpclient.binary();// 用2進制上傳、下載
system.out.println("已登錄到\"" ftpclient.pwd() "\"目錄");
return true;
} catch (ioexception e) {
e.printstacktrace();
return false;
}
}
/**
* 斷開與ftp伺服器連接
*
* @throws ioexception
*/
public boolean closeserver() {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
if (ftpclient != null) {
ftpclient.closeserver();
}
system.out.println("已從伺服器斷開");
return true;
} catch (ioexception e) {
e.printstacktrace();
return false;
}
}
/**
* 檢查文件夾在當前目錄下是否存在
*
* @param dir
*@return
*/
private boolean isdirexist(string dir) {
string pwd = "";
try {
pwd = ftpclient.pwd();
ftpclient.cd(dir);
ftpclient.cd(pwd);
} catch (exception e) {
return false;
}
return true;
}
/**
* 在當前目錄下創建文件夾
*
* @param dir
* @return
* @throws exception
*/
private boolean createdir(string dir) {
try {
ftpclient.ascii();
stringtokenizer s = new stringtokenizer(dir, "/"); // sign
s.counttokens();
string pathname = ftpclient.pwd();
while (s.hasmoreelements()) {
pathname = pathname "/" (string) s.nextelement();
try {
ftpclient.sendserver("mkd " pathname "\r\n");
} catch (exception e) {
e = null;
return false;
}
ftpclient.readserverresponse();
}
ftpclient.binary();
return true;
} catch (ioexception e1) {
e1.printstacktrace();
return false;
}
}
/**
* ftp上傳 如果伺服器段已存在名為filename的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換
*
* @param filename
* 要上傳的文件(或文件夾)名
* @return
* @throws exception
*/
public boolean upload(string filename) {
string newname = "";
if (filename.indexof("/") > -1) {
newname = filename.substring(filename.lastindexof("/") 1);
} else {
newname = filename;
}
return upload(filename, newname);
}
/**
* ftp上傳 如果伺服器段已存在名為newname的文件夾,該文件夾中與要上傳的文件夾中同名的文件將被替換
*
* @param filename
* 要上傳的文件(或文件夾)名
* @param newname
* 伺服器段要生成的文件(或文件夾)名
* @return
*/
public boolean upload(string filename, string newname) {
try {
string savefilename = new string(filename.getbytes("gbk"),
"gbk");
file file_in = new file(savefilename);// 打開本地待長傳的文件
if (!file_in.exists()) {
throw new exception("此文件或文件夾[" file_in.getname() "]有誤或不存在!");
}
if (file_in.isdirectory()) {
upload(file_in.getpath(), newname, ftpclient.pwd());
} else {
uploadfile(file_in.getpath(), newname);
}
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
return true;
} catch (exception e) {
e.printstacktrace();
system.err.println("exception e in ftp upload(): " e.tostring());
return false;
} finally {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
} catch (ioexception e) {
e.printstacktrace();
}
}
}
/**
* 真正用於上傳的方法
*
* @param filename
* @param newname
* @param path
* @throws exception
*/
private void upload(string filename, string newname, string path)
throws exception {
string savefilename = new string(filename.getbytes("iso-8859-1"), "gbk");
file file_in = new file(savefilename);// 打開本地待長傳的文件
if (!file_in.exists()) {
throw new exception("此文件或文件夾[" file_in.getname() "]有誤或不存在!");
}
if (file_in.isdirectory()) {
if (!isdirexist(newname)) {
createdir(newname);
}
ftpclient.cd(newname);
file sourcefile[] = file_in.listfiles();
for (int i = 0; i < sourcefile.length; i ) {
if (!sourcefile[i].exists()) {
continue;
}
if (sourcefile[i].isdirectory()) {
this.upload(sourcefile[i].getpath(), sourcefile[i]
.getname(), path "/" newname);
} else {
this.uploadfile(sourcefile[i].getpath(), sourcefile[i]
.getname());
}
}
} else {
uploadfile(file_in.getpath(), newname);
}
ftpclient.cd(path);
}
/**
* upload 上傳文件
*
* @param filename
* 要上傳的文件名
* @param newname
* 上傳後的新文件名
* @return -1 文件不存在 >=0 成功上傳,返迴文件的大小
* @throws exception
*/
public long uploadfile(string filename, string newname) throws exception {
long result = 0;
telnetoutputstream os = null;
fileinputstream is = null;
try {
java.io.file file_in = new java.io.file(filename);
if (!file_in.exists())
return -1;
os = ftpclient.put(newname);
result = file_in.length();
is = new fileinputstream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
return result;
}
/**
* 從ftp下載文件到本地
*
* @param filename
* 伺服器上的文件名
* @param newfilename
* 本地生成的文件名
* @return
* @throws exception
*/
public long downloadfile(string filename, string newfilename) {
long result = 0;
telnetinputstream is = null;
fileoutputstream os = null;
try {
is = ftpclient.get(filename);
java.io.file outfile = new java.io.file(newfilename);
os = new fileoutputstream(outfile);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
result = result c;
}
} catch (ioexception e) {
e.printstacktrace();
} finally {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
} catch (ioexception e) {
e.printstacktrace();
}
}
return result;
}
/**
* 取得相對於當前連接目錄的某個目錄下所有文件列表
*
* @param path
* @return
*/
public list getfilelist(string path) {
list list = new arraylist();
datainputstream dis;
try {
dis = new datainputstream(ftpclient.namelist(this.path path));
string filename = "";
while ((filename = dis.readline()) != null) {
list.add(filename);
}
} catch (ioexception e) {
e.printstacktrace();
}
return list;
}
public static void main(string[] args) {
ftputil ftp = new ftputil("192.168.11.11", "111", "1111");
ftp.connectserver();
boolean result = ftp.upload("c:/documents and settings/ipanel/桌面/java/hibernate_hql.docx", "amuse/audiotest/music/hibernate_hql.docx");
system.out.println(result ? "上傳成功!" : "上傳失敗!");
ftp.closeserver();
/**
* ftp遠程命令列表 user port retr allo dele site xmkd cdup feat pass pasv stor
* rest cwd stat rmd xcup opts acct type appe rnfr xcwd help xrmd stou
* auth rein stru smnt rnto list noop pwd size pbsz quit mode syst abor
* nlst mkd xpwd mdtm prot
* 在伺服器上執行命令,如果用sendserver來執行遠程命令(不能執行本地ftp命令)的話,所有ftp命令都要加上\r\n
* ftpclient.sendserver("xmkd /test/bb\r\n"); //執行伺服器上的ftp命令
* ftpclient.readserverresponse一定要在sendserver後調用
* namelist("/test")獲取指目錄下的文件列表 xmkd建立目錄,當目錄存在的情況下再次創建目錄時報錯 xrmd刪除目錄
* dele刪除文件
*/
}
}
e. java 實現ftp上傳如何創建文件夾
這個功能我也剛寫完,不過我也是得益於同行,現在我也把自己的分享給大家,希望能對大家有所幫助,因為自己的項目不涉及到創建文件夾,也僅作分享,不喜勿噴謝謝!
interface:
packagecom.sunline.bank.ftputil;
importjava.io.bufferedinputstream;
importjava.io.bufferedoutputstream;
importorg.apache.commons.net.ftp.ftpclient;
publicinterfaceiftputils{
/**
*ftp登錄
*@paramhostname主機名
*@paramport埠號
*@paramusername用戶名
*@parampassword密碼
*@return
*/
publicftpclientloginftp(stringhostname,integerport,stringusername,stringpassword);
/**
*上穿文件
*@paramhostname主機名
*@paramport埠號
*@paramusername用戶名
*@parampassword密碼
*@paramfpathftp路徑
*@paramlocalpath本地路徑
*@paramfilename文件名
*@return
*/
(stringhostname,integerport,stringusername,stringpassword,stringfpath,stringlocalpath,stringfilename);
/**
*批量下載文件
*@paramhostname
*@paramport
*@paramusername
*@parampassword
*@paramfpath
*@paramlocalpath
*@paramfilename源文件名
*@paramfilenames需要修改成的文件名
*@return
*/
publicbooleandownloadfilelist(stringhostname,integerport,stringusername,stringpassword,stringfpath,stringlocalpath,stringfilename,stringfilenames);
/**
*修改文件名
*@paramlocalpath
*@paramfilename源文件名
*@paramfilenames需要修改的文件名
*/
(stringlocalpath,stringfilename,stringfilenames);
/**
*關閉流連接、ftp連接
*@paramftpclient
*@parambufferread
*@parambuffer
*/
publicvoidcloseftpconnection(ftpclientftpclient,,bufferedinputstreambuffer);
}
impl:
packagecom.sunline.bank.ftputil;
importjava.io.bufferedinputstream;
importjava.io.bufferedoutputstream;
importjava.io.file;
importjava.io.fileinputstream;
importjava.io.fileoutputstream;
importjava.io.ioexception;
importorg.apache.commons.net.ftp.ftpclient;
importorg.apache.commons.net.ftp.ftpfile;
importorg.apache.commons.net.ftp.ftpreply;
importcommon.logger;
{
privatestaticloggerlog=logger.getlogger(ftputilsimpl.class);
ftpclientftpclient=null;
integerreply=null;
@override
publicftpclientloginftp(stringhostname,integerport,stringusername,stringpassword){
ftpclient=newftpclient();
try{
ftpclient.connect(hostname,port);
ftpclient.login(username,password);
ftpclient.setcontrolencoding("utf-8");
reply=ftpclient.getreplycode();
ftpclient.setdatatimeout(60000);
ftpclient.setconnecttimeout(60000);
//設置文件類型為二進制(避免解壓縮文件失敗)
ftpclient.setfiletype(ftpclient.binary_file_type);
//開通數據埠傳輸數據,避免阻塞
ftpclient.enterlocalactivemode();
if(!ftpreply.ispositivecompletion(ftpclient.getreplycode())){
log.error("連接ftp失敗,用戶名或密碼錯誤");
}else{
log.info("ftp連接成功");
}
}catch(exceptione){
if(!ftpreply.ispositivecompletion(reply)){
try{
ftpclient.disconnect();
}catch(ioexceptione1){
log.error("登錄ftp失敗,請檢查ftp相關配置信息是否正確",e1);
}
}
}
returnftpclient;
}
@override
@suppresswarnings("resource")
(stringhostname,integerport,stringusername,stringpassword,stringfpath,stringlocalpath,stringfilename){
booleanflag=false;
ftpclient=loginftp(hostname,port,username,password);
bufferedinputstreambuffer=null;
try{
buffer=newbufferedinputstream(newfileinputstream(localpath filename));
ftpclient.changeworkingdirectory(fpath);
filename=newstring(filename.getbytes("utf-8"),ftpclient.default_control_encoding);
if(!ftpclient.storefile(filename,buffer)){
log.error("上傳失敗");
returnflag;
}
buffer.close();
ftpclient.logout();
flag=true;
returnflag;
}catch(exceptione){
e.printstacktrace();
}finally{
closeftpconnection(ftpclient,null,buffer);
log.info("文件上傳成功");
}
returnfalse;
}
@override
publicbooleandownloadfilelist(stringhostname,integerport,stringusername,stringpassword,stringfpath,stringlocalpath,stringfilename,stringfilenames){
ftpclient=loginftp(hostname,port,username,password);
booleanflag=false;
=null;
if(fpath.startswith("/")&&fpath.endswith("/")){
try{
//切換到當前目錄
this.ftpclient.changeworkingdirectory(fpath);
this.ftpclient.enterlocalactivemode();
ftpfile[]ftpfiles=this.ftpclient.listfiles();
for(ftpfilefiles:ftpfiles){
if(files.isfile()){
system.out.println("==================" files.getname());
filelocalfile=newfile(localpath "/" files.getname());
bufferread=newbufferedoutputstream(newfileoutputstream(localfile));
ftpclient.retrievefile(files.getname(),bufferread);
bufferread.flush();
}
}
ftpclient.logout();
flag=true;
}catch(ioexceptione){
e.printstacktrace();
}finally{
closeftpconnection(ftpclient,bufferread,null);
log.info("文件下載成功");
}
}
modifiedlocalfilename(localpath,filename,filenames);
returnflag;
}
@override
(stringlocalpath,stringfilename,stringfilenames){
filefile=newfile(localpath);
file[]filelist=file.listfiles();
if(file.exists()){
if(null==filelist||filelist.length==0){
log.error("文件夾是空的");
}else{
for(filedata:filelist){
stringorprefix=data.getname().substring(0,data.getname().lastindexof("."));
stringprefix=filename.substring(0,filename.lastindexof("."));
system.out.println("index===" orprefix "prefix===" prefix);
if(orprefix.contains(prefix)){
booleanf=data.renameto(newfile(localpath "/" filenames));
system.out.println("f=============" f);
}else{
log.error("需要重命名的文件不存在,請檢查。。。");
}
}
}
}
}
@override
publicvoidcloseftpconnection(ftpclientftpclient,,bufferedinputstreambuffer){
if(ftpclient.isconnected()){
try{
ftpclient.disconnect();
}catch(ioexceptione){
e.printstacktrace();
}
}
if(null!=bufferread){
try{
bufferread.close();
}catch(ioexceptione){
e.printstacktrace();
}
}
if(null!=buffer){
try{
buffer.close();
}catch(ioexceptione){
e.printstacktrace();
}
}
}
publicstaticvoidmain(string[]args)throwsioexception{
stringhostname="xx.xxx.x.xxx";
integerport=21;
stringusername="edwftp";
stringpassword="edwftp";
stringfpath="/etl/etldata/back/";
stringlocalpath="c:/users/administrator/desktop/ftp下載/";
stringfilename="test.txt";
stringfilenames="ok.txt";
ftputilsimplftp=newftputilsimpl();
/*ftp.modifiedlocalfilename(localpath,filename,filenames);*/
ftp.downloadfilelist(hostname,port,username,password,fpath,localpath,filename,filenames);
/*ftp.uploadlocalfilestoftp(hostname,port,username,password,fpath,localpath,filename);*/
/*ftp.modifiedlocalfilename(localpath);*/
}
}