import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.StringTokenizer;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
import sun.net.ftp.FtpLoginException;

public class ftp ...{
FtpClient aftp;
DataOutputStream outputs;
TelnetInputStream ins;
TelnetOutputStream outs;
int ch;
public String a;
String hostname = "";
private String path = "/";

public static void main(String[] args) ...{
String hostname = "133.133.133.34";
int port = 21;
String uid = "olympic";
String pwd = "olympic";
String RWFileDir = "D:\temp\files";// 文件目录
// 连接ftp服务器
ftp ft = new ftp();
ft.connect(RWFileDir, hostname, port, uid, pwd);
// 下载文件
if (ft.aftp != null) ...{
try ...{
ft.getNameList(RWFileDir);
} catch (IOException e) ...{
System.out.println("下载文件出错:" + e);
}
}
// 断开服务器连接
ft.stop(RWFileDir);
}
public FtpClient connect(String RWFileDir, String hostname, int port,
String uid, String pwd) ...{
this.hostname = hostname;
System.out.println("正在连接" + hostname + ",请等待.....");
try ...{
aftp = new FtpClient(hostname, port);
aftp.login(uid, pwd);
aftp.binary();
// aftp.openPortDataConnection();
a = "连接主机:" + hostname + "成功!";
System.out.println(a);
} catch (FtpLoginException e) ...{
a = "登陆主机:" + hostname + "失败!请检查用户名或密码是否正确:" + e;
System.out.println(a);
// return false;
} catch (IOException e) ...{
a = "连接主机:" + hostname + "失败!请检查端口是否正确:" + e;
System.out.println(a);
// return false;
} catch (SecurityException e) ...{
a = "无权限与主机:" + hostname + "连接!请检查是否有访问权限:" + e;
System.out.println(a);
// return false;
}
log(RWFileDir, a);
return aftp;
}

public void stop(String RWFileDir) ...{
String message = "";
try ...{
if (aftp != null) ...{
aftp.closeServer();
message = "与主机" + hostname + "连接已断开!";
System.out.println(message);
log(RWFileDir, message);
}
} catch (IOException e) ...{
message = "与主机" + hostname + "断开连接失败!" + e;
System.out.println(message);
log(RWFileDir, message);
}
}

public boolean downloadFile(String RWFileDir, String filepathname) ...{
boolean result = true;
String message = "";
if (aftp != null) ...{
System.out.println("正在下载文件" + filepathname + ",请等待....");
String badfile = filepathname.substring(filepathname.length() - 4,
filepathname.length());
String badlog = filepathname.substring(filepathname.length() - 7,
filepathname.length());
String baddir = "";
if ((badfile.compareTo(".bad") != 0)
&& (badlog.compareTo(".badlog") != 0)) ...{
baddir = "subunsubtosp\";
} else ...{
baddir = "bad\";
}
String strdir = "subunsubtosp\";
// System.out.println(RWFileDir + baddir + filepathname);
try ...{
// FtpClient fc=new FtpClient("192.168.0.56",2121);
// fc.login("lee","lee");
int ch;
File fi = new File(RWFileDir + baddir + filepathname);
// aftp.cd(strdir);
RandomAccessFile getFile = new RandomAccessFile(fi, "rw");
getFile.seek(0);
TelnetInputStream fget = aftp.get(strdir + filepathname);
DataInputStream puts = new DataInputStream(fget);
while ((ch = puts.read()) >= 0) ...{
getFile.write(ch);
}
// s.delete();
fget.close();
getFile.close();
// fc.closeServer();
message = "下载" + filepathname + "文件到" + bad
216

被折叠的 条评论
为什么被折叠?



