java FTPClient如何删除远程服务器端的文件夹及其子文件夹及其内容!
假如文件夹里面有文件的话,ftpclient根本删除不了文件夹,不像其他api可以自动递归删除,所以得先删除文件夹里面的文件,然后在删除文件夹,
删除之前记得改变下工作目录 fileName是dirName里面的文件
ftpClientchangeWorkingDirectory(remoteDir+dirName)
删除文件命令:ftpClientdeleteFile(fileName);
删除完文件后更改目录ftpClientchangeWorkingDirectory(remoteDir)
删除文件夹命令:ftpClientremoveDirectory(dirName);
import javaioInputStream;
import javaioPrintStream;
import orgapachecommonsnettelnetTelnetClient;
/
利用apache net 开源包,使用telnet方式获取AIX主机信息
@version 12
/
public class NetTelnet {
// Telnet对象
private TelnetClient telnet = new TelnetClient();
private InputStream in;
private PrintStream out;
// 提示符。具体请telnet到AIX主机查看
private char prompt = '#';
// telnet端口
private String port;
// 用户
private String user;
// 密码
private String password;
// IP地址
private String ip;
public NetTelnet() {
try {
// AIX主机IP
thisip = "2192431210";
thispassword = "05933663007";
thisuser = "administrator";
thisport = "23";
telnetconnect(ip, IntegerparseInt(port));
Systemoutprintln("开始获取输入流");
in = telnetgetInputStream();
out = new PrintStream(telnetgetOutputStream());
// 登录
/ readUntil("login: ");
write(user);
readUntil("Password: ");
write(password);
readUntil(prompt + " ");/
} catch (Exception e) {
eprintStackTrace();
}
}
/
读取分析结果
@param pattern
@return
/
public String readUntil(String pattern) {
try {
char lastChar = patterncharAt(patternlength() - 1);
StringBuffer sb = new StringBuffer();
char ch = (char) inread();
while (true) {
sbappend(ch);
if (ch == lastChar) {
if (sbtoString()endsWith(pattern)) {
return sbtoString();
}
}
ch = (char) inread();
}
} catch (Exception e) {
eprintStackTrace();
}
return null;
}
/
写
@param value
/
public void write(String value) {
try {
outprintln(value);
outflush();
} catch (Exception e) {
eprintStackTrace();
}
}
/
向目标发送命令字符串
@param command
@return
/
public String sendCommand(String command) {
try {
write(command);// 执行删除的命令 rm -rf
return readUntil(prompt + " ");
} catch (Exception e) {
eprintStackTrace();
}
return null;
}
/
关闭连接
/
public void disconnect() {
try {
telnetdisconnect();
} catch (Exception e) {
eprintStackTrace();
}
}
public static void main(String[] args) {
try {
Systemoutprintln("开始执行telnet");
NetTelnet telnet = new NetTelnet();
// 通过aix的命令“查找主机名称”获取数据
// 命令是 "hostname"
// 不熟悉命令的参考<<AIX网络管理手册>>
Systemoutprintln("开始发送hostname命令");
String result = telnetsendCommand("hostname");
Systemoutprintln("显示结果");
Systemoutprintln(result);
// 最后一定要关闭
telnetdisconnect();
} catch (Exception e) {
eprintStackTrace();
}
}
}
QQ离线文件传送至服务器删除方法:
1登录电脑端QQ,然后点击主菜单,然后选择工具,选择文件助手;
2进入文件助手之后,点击离线文件;
3选择离线文件,点击删除即可。
一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,
(1):Java FTP主文件代码:
package ftpDemo;
import javaioDataOutputStream;
import javaioInputStream;
import javaioOutputStream;
import sunnetTelnetInputStream;
import sunnetTelnetOutputStream;
import sunnetftpFtpClient;
public class ftpUtil {
// 上传文件至FTP通用方法
public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){
try {
String ftpHost = kmConfiggetFtpHost();
int port = kmConfiggetFtpPort();
String userName = kmConfiggetFtpUser();
String passWord = kmConfiggetFtpPassword();
String path = kmConfiggetFtpPath();
FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
ftpClientlogin(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
ftpClientbinary();
ftpClientcd(path);// path为FTP服务器上保存上传文件的路径。
TelnetOutputStream telnetOut = ftpClientput(fileName);// fileName为上传的文件名
DataOutputStream dataOut = new DataOutputStream(telnetOut);
byte buffer[] = new byte[ ];
int count = ;
while ((count = isread(buffer)) != -) {
dataOutwrite(buffer, , count);
}
telnetOutclose();
dataOutclose();
ftpClientcloseServer();
} catch (Exception e) {
Systemoutprintln("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");
}
}
// 删除文件至FTP通用方法
public static void deleteFileFtp(KmConfig kmConfig,String fileName){
try {
String ftpHost = kmConfiggetFtpHost();
int port = kmConfiggetFtpPort();
String userName = kmConfiggetFtpUser();
String passWord = kmConfiggetFtpPassword();
String path = kmConfiggetFtpPath();
FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
ftpClientlogin(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
ftpClientbinary();
ftpClientcd(path);// path为FTP服务器上保存上传文件的路径。
try {
ftpClientsendServer("dele " + fileName + "\r\n");
} catch (Exception e) {
Systemoutprintln("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");
}
ftpClientcloseServer();
} catch (Exception e) {
Systemoutprintln("删除文件失败!");
}
}
// 下载ftp文件
public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
try {
String ftpHost = kmConfiggetFtpHost();
int port = kmConfiggetFtpPort();
String userName = kmConfiggetFtpUser();
String passWord = kmConfiggetFtpPassword();
String path = kmConfiggetFtpPath();
FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
ftpClientlogin(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
ftpClientbinary();
ftpClientcd(path);// path为FTP服务器上保存上传文件的路径。
try {
TelnetInputStream in = ftpClientget(fileName);
byte[] bytes = new byte[];
int cnt=;
while ((cnt=inread(bytes,,byteslength)) != -) {
outputStreamwrite(bytes, , cnt);
}
outputStreamclose();
inclose();
} catch (Exception e) {
ftpClientcloseServer();
eprintStackTrace();
}
ftpClientcloseServer();
} catch (Exception e) {
Systemoutprintln("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");
}
}
//在ftp服务器上传件文件夹
public boolean createDir(String path,FtpClient ftpClient) throws Exception{
//进入到home文件夹下
ftpClientcd("/home");
//创建远程文件夹
//远程命令包括
//USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT<br>
// PASS PASV STOR REST CWD STAT RMD XCUP OPTS<br>
// ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH<br>
// REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ<br>
// QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT<br>
// 在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/n<br>
// ftpclientsendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令<br>
// ftpclientreadServerResponse一定要在sendServer后调用<br>
// nameList("/test")获取指目录下的文件列表<br>
// XMKD建立目录,当目录存在的情况下再次创建目录时报错<br>
// XRMD删除目录<br>
// DELE删除文件<br>
//通过远程命令 穿件一个files文件夹
ftpClientsendServer("MKD "+ path + "\r\n");
//这个方法必须在 这两个方法中间调用 否则 命令不管用
ftpClientbinary();
ftpClientreadServerResponse();
return false;
}
/
检查文件夹是否存在
@param dir
@param ftpClient
@return
/
public boolean isDirExist(String dir, FtpClient ftpClient) {
try {
ftpClientcd(dir);
} catch (Exception e) {
return false;
}
return true;
}
}
(2):KmConfigjava代码如下:定义FTP服务器参数,包括登录的用户名密码之类的。
package ftpDemo;
public class KmConfig {
//主机ip
private String FtpHost = "";
//端口号
private int FtpPort;
//ftp用户名
private String FtpUser = "";
//ftp密码
private String FtpPassword = "";
//ftp中的目录
private String FtpPath = "";
public String getFtpHost() {
return FtpHost;
}
public void setFtpHost(String ftpHost) {
FtpHost = ftpHost;
}
public int getFtpPort() {
return FtpPort;
}
public void setFtpPort(int ftpPort) {
FtpPort = ftpPort;
}
public String getFtpUser() {
return FtpUser;
}
public void setFtpUser(String ftpUser) {
FtpUser = ftpUser;
}
public String getFtpPassword() {
return FtpPassword;
}
public void setFtpPassword(String ftpPassword) {
FtpPassword = ftpPassword;
}
public String getFtpPath() {
return FtpPath;
}
public void setFtpPath(String ftpPath) {
FtpPath = ftpPath;
}
}
(3):下面是测试代码:
0条评论