怎么用java代码创建ftp用户和密码
创建ftp用户名和密码,其实就在ftp服务器的用户文件里面添加条记录。
方法有两种,我说下思路。
一、你可以用java程序找到相应的配置文件,打开、把用户名密码写入进去。ok了。
二、你用用java程序调用创建ftp用户的命令,来创建ftp用户。
使用File类中方法就可以实现
File[] listFiles() 返回目录下所有的文件
File file=new File("你的ftp的根路径");
File files[]=filelistFiles();
for(int i=0;i<fileslength;i++){
Systemoutprintln(files[i]getName() );
}
如果要获取所有的文件和文件夹可以使用String[] list()方法。返回的是String类型的数组,其中所有文件和文件夹的相对路径表示。
补充---
如果那样的话那么就需要在你的ftp服务器上做一个socket服务端,你通过一个客户端连接上去。然后服务器端将获取的文件列表数组传递给你,就可以了。如果想直接获取别人的机器的文件列表是很难的,基本上是不可能的,当然是出于安全的考虑
import javaioFile;
import javaioFileInputStream;
import javaioIOException;
import javaioOutputStream;
import javaioUnsupportedEncodingException;
import sunnetftpFtpClient;
/
@author chenc
@version 10
2008-02-19
/
public class Ftp {
private String ip = "";
private String username = "";
private String password = "";
private String ftpDir = "";
private String localFileFullName = "";// 待上传的文件全名
private String ftpFileName = ""; // 文件上传到FTP后的名称
FtpClient ftpClient = null;
OutputStream os = null;
FileInputStream is = null;
public Ftp(String serverIP, String username, String password, String ftpDir) {
thisip = serverIP;
thisusername = username;
thispassword = password;
if (ftpDir == null) {
thisftpDir = "/ftpfileload";
} else {
try {
thisftpDir = "/"
+ new String(ftpDirgetBytes("ISO-8859-1"), "GBK")
toString();
} catch (UnsupportedEncodingException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
}
}
private void createDir(String dir, FtpClient ftpClient) {
Systemoutprintln(thisftpDir);
ftpClientsendServer("MKD " + dir + "\r\n");
try {
ftpClientreadServerResponse();
} catch (IOException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
}
private Boolean isDirExist(String dir, FtpClient ftpClient) {
try {
ftpClientcd(dir);
} catch (Exception e) {
// TODO 自动生成 catch 块
return false;
}
return true;
}
public String upload(String localFileFullName) {
// thisftpFileName = "aaatest";
// 获取文件后缀名
String ext = localFileFullNamesubstring(localFileFullName
lastIndexOf(""));
// Systemoutprintln(ext);
// 产生新文件名,用系统当前时间+文件原有后缀名
long newFileName = SystemcurrentTimeMillis();
String newFileFullName = newFileName + ext;
// Systemoutprintln("new file name:"+newFileFullName);
thisftpFileName = newFileFullName;
try {
String savefilename = new String(localFileFullName
getBytes("ISO-8859-1"), "GBK");
// 新建一个FTP客户端连接
ftpClient = new FtpClient();
ftpClientopenServer(thisip);
ftpClientlogin(thisusername, thispassword);
// 判断并创建目录
if (!isDirExist(thisftpDir, ftpClient)) {
createDir(thisftpDir, ftpClient);
}
ftpClientcd(thisftpDir);// 切换到FTP目录
ftpClientbinary();
os = ftpClientput(thisftpFileName);
// 打开本地待长传的文件
File file_in = new File(savefilename);
is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
// 开始复制
int c;
// 暂未考虑中途终止的情况
while ((c = isread(bytes)) != -1) {
oswrite(bytes, 0, c);
}
} catch (Exception e) {
eprintStackTrace();
Systemerrprintln("Exception e in Ftp upload(): " + etoString());
} finally {
try {
if (is != null) {
isclose();
}
if (os != null) {
osclose();
}
if (ftpClient != null) {
ftpClientcloseServer();
}
} catch (Exception e) {
Systemerrprintln("Exception e in Ftp upload() finally"
+ etoString());
}
}
return thisftpFileName;
}
public void delFile(String dir, String filename) {
ftpClient = new FtpClient();
try {
ftpClientopenServer(thisip);
ftpClientlogin(thisusername, thispassword);
if (dirlength() > 0) {
ftpClientcd(dir);
}
ftpClientsendServer("DELE " + filename + "\r\n");
ftpClientreadServerResponse();
} catch (IOException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
}
}
我写的一个FTP类,你看看你能不能用。。。。。
0条评论