为了能在Sco Unix下去接收文件,C忘的差不多了,近期刚好在看JAVA,所以就索性来个学以致用了。老规矩在网上搜索了一番,开始尝试使用第三方的控件包edtftpj,但对中文支持不行,老是报异常,想尝试去解决,但结果很不幸。不过,事情总是两面性,在搜索过程以发现了有一位大虾在留言版上贴出了关于用Apache jakarta的net子项目包来做FTP,而且给出源码。去apache的站点上下载了net包,把网上下来的源码调整后,可以连接上去了,但在执行FtpClien.dirlist()方法时报错Main notFoundCLass....,这个错费了不少时间,结果是Apache jakarta上还有一个oro的子项目包,加入后就OK了。至于后来碰上的中文乱码问题,就是JAVA的编码转换一下就ok了。下面是我调整好后的源代码(windows(Client)-->Unix(FTP Server))。
声明:原始作者不是本人!
import org.apache.commons.net.ftp.*;
import org.apache.commons.net.ftp.FTPFile;
public class ftp1 {
public static void main(String[] args) throws Exception{
//
String strTemp = "";
// InetAddress ia = InetAddress.getByName("192.168.0.1");
FTPClient ftp = new FTPClient();
");
boolean blogin = ftp.login("aaa", "aaa");
if (!blogin) {
System.out.println("连接失败");
();
ftp = null;
return ;
}
/*
* //如果是中文名必需进行字符集转换
boolean bMakeFlag =
* String("测试目录".getBytes( "gb2312"), "iso-8859-1")); //在服务器创建目录
* //上传文件到服务器,目录自由创建 File file = new File("c:\\test.properties");
* FileInputStream(file));
*/
System.out.println("FTP服务器系统:"+ftp.getSystemName());
System.out.println("FTP服务器端口:"+ftp.getRemotePort());
FTPFile[] ftpFiles =ftp.listFiles();
if (ftpFiles != null) {
for (int i = 0; i < ftpFiles.length; i++) {
// System.out.println(ftpFiles[i].isFile());
if (ftpFiles[i].isDirectory()) {
strTemp=ftpFiles[i].getName();
strTemp=new String(strTemp.getBytes("ISO-8859-1"),"gb2312");
System.out.println(strTemp);
//FTPFile ftpf = new FTPFile();
/*
* System.err.println(ftpf.hasPermission(FTPFile.GROUP_ACCESS,
* FTPFile.EXECUTE_PERMISSION));
* System.err.println("READ_PERMISSION="+ftpf.hasPermission(FTPFile.USER_ACCESS,
* FTPFile.READ_PERMISSION));
* System.err.println("EXECUTE_PERMISSION="+ftpf.hasPermission(FTPFile.USER_ACCESS,
* FTPFile.EXECUTE_PERMISSION));
* System.err.println("WRITE_PERMISSION="+ftpf.hasPermission(FTPFile.USER_ACCESS,
* FTPFile.WRITE_PERMISSION));
* System.err.println(ftpf.hasPermission(FTPFile.WORLD_ACCESS,
* FTPFile.READ_PERMISSION));
*/
}
/*else{
System.out.println("上面这个是目录");
}
*/
// System.out.println(ftpFiles[i].getUser());
}
}
// 下载服务器文件
// FileOutputStream fos = new
// FileOutputStream("e:/proftpd-1.2.10.tar.gz");
// );
// fos.close();
// 改变ftp目录
// 回到父目录
// 转移工作目录
//
// 删除ftp服务器文件
// ("");
// 注销当前用户,
// ();
// ("");
();
ftp = null;
}
}
阅读(2062) | 评论(0) | 转发(0) |