请问用sun.net.Ftp.* 怎么去在ftp server上去建目录

ZhuYujie 2004-09-28 11:07:48
请问用sun.net.Ftp.* 怎么去在ftp server上去建目录.
...全文
106 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GJA106 2005-01-17
sun的ftp功能不好用,可以用apache的common-net(commons-net-1.2.2.jar)项目包,如下代码:

import java.io.*;
import java.net.InetAddress;
import org.apache.commons.net.ftp.*;
import org.apache.commons.net.ftp.parser.*;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPFileEntryParser;

import sun.net.TelnetInputStream;

public class FtpAppache {
public FtpAppache() throws Exception{
// sun.net.ftp.FtpClient ft = null;
// TelnetInputStream t = ft.list();
// t.setStickyCRLF(true);
}

public void test1() throws Exception {
//
String strTemp = "";

//InetAddress ia = InetAddress.getByName("192.168.0.193");
FTPClient ftp = new FTPClient();
ftp.connect("192.168.0.193");

boolean blogin = ftp.login("de", "123456");
if (!blogin) {
System.out.println("连接失败");
ftp.disconnect();
ftp = null;
return;
}

/*//如果是中文名必需进行字符集转换
boolean bMakeFlag = ftp.makeDirectory(new String("测试目录".getBytes(
"gb2312"), "iso-8859-1")); //在服务器创建目录
//上传文件到服务器,目录自由创建
File file = new File("c:\\test.properties");
ftp.storeFile("test.properties",new FileInputStream(file));*/

System.out.println(ftp.getSystemName());

FTPFile[] ftpFiles = ftp.listFiles();
if (ftpFiles != null) {
for (int i = 0; i < ftpFiles.length; i++) {
System.out.println(ftpFiles[i].getName());
//System.out.println(ftpFiles[i].isFile());
if (ftpFiles[i].isFile()) {
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));*/

}
//System.out.println(ftpFiles[i].getUser());
}
}

//下载服务器文件
FileOutputStream fos = new FileOutputStream("e:/proftpd-1.2.10.tar.gz");
ftp.retrieveFile("proftpd-1.2.10.tar.gz",fos);
fos.close();

//改变ftp目录
//ftp.changeToParentDirectory();//回到父目录
//ftp.changeWorkingDirectory("");//转移工作目录
//ftp.completePendingCommand();//

//删除ftp服务器文件
//ftp.deleteFile("");

//注销当前用户,
//ftp.logout();
//ftp.structureMount("");
ftp.disconnect();
ftp = null;
}

public static void main(String[] args) {
try {
FtpAppache ftpAppache1 = new FtpAppache();
ftpAppache1.test1();
}
catch (Exception e) {
e.printStackTrace();
}
}

}
回复
uestc6055 2005-01-17
ft.issueCommand("MKD "+localFile.getName());
试试这样行不行
回复
dophin1003 2005-01-17
wjpsdm(萨达姆):好象这个类中没有这个issueCommand(String)方法呢?
回复
galewithwing 2004-11-19
这个包没有用过,
不过你可以到sun的社区找找看,很多资料,白皮书什么的,针对很多东西都有表述,有范例
回复
wjpsdm 2004-11-19
我也遇到同样的问题,网上有一种方法是:

ftpClient ft;
ft.issueCommand("mkdir "+localfile.name);
但是报错,具体我也不知道怎莫用.
回复
zeus0915 2004-11-05
我也遇到同样的问题,关注中
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告