java FTPClient如何删除远程服务器端的文件夹及其子文件夹及其内容!

java FTPClient如何删除远程服务器端的文件夹及其子文件夹及其内容!,第1张

假如文件夹里面有文件的话,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):下面是测试代码:

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java FTPClient如何删除远程服务器端的文件夹及其子文件夹及其内容!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情