java 实现ftp上传如何创建文件夹?

Python020

java 实现ftp上传如何创建文件夹?,第1张

准备条件:java实现ftp上传用到了commons-net-3.3.jar包

首先建立ftphost连接

public boolean connect(String path, String addr, int port, String username, String password) {

try {

//FTPClient ftp = new FTPHTTPClient(addr, port, username, password)

ftp = new FTPClient()

int reply

ftp.connect(addr)

System.out.println("连接到:" + addr + ":" + port)

System.out.print(ftp.getReplyString())

reply = ftp.getReplyCode()

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect()

System.err.println("FTP目标服务器积极拒绝.")

System.exit(1)

return false

}else{

ftp.login(username, password)

ftp.enterLocalPassiveMode()

ftp.setFileType(FTPClient.BINARY_FILE_TYPE)

ftp.changeWorkingDirectory(path)

System.out.println("已连接:" + addr + ":" + port)

return true

}

} catch (Exception ex) {

ex.printStackTrace()

System.out.println(ex.getMessage())

return false

}

}

然后再利用ftpclient的makeDirectory方法创建文件夹

public void createDir(String dirname){

try{

ftp.makeDirectory(dirname)

System.out.println("在目标服务器上成功建立了文件夹: " + dirname)

}catch(Exception ex){

System.out.println(ex.getMessage())

}

}

断开host连接

public void disconnect(){

try {

ftp.disconnect()

} catch (IOException e) {

e.printStackTrace()

}

}

最后是程序的调用方法

public static void main(String[] args) {

FtpUploadTest ftpupload = new FtpUploadTest()

if(ftpupload.connect("", "172.39.8.x", 20, "administrator", "abc@123")){

ftpupload.createDir("/UPLOAD")

ftpupload.disconnect()

}

}

上传下载的代码

import java.io.BufferedReader

import java.io.FileInputStream

import java.io.FileOutputStream

import java.io.IOException

import java.io.InputStreamReader

import sun.net.TelnetOutputStream

import sun.net.TelnetInputStream

import sun.net.ftp.FtpClient

public class download {

String localfilename

String remotefilename

FtpClient ftpClient

// server:服务器名字

// user:用户名

// password:密码

// path:服务器上的路径

public void connectServer(String ip, int port,String user

, String password,String path) {

try {

ftpClient = new FtpClient()

ftpClient.openServer(ip,port)

ftpClient.login(user, password)

System.out.println("login success!")

if (path.length() != 0) ftpClient.cd(path)

ftpClient.binary()

} catch (IOException ex) {

System.out.println("not login")

System.out.println(ex)

}

}

public void closeConnect() {

try {

ftpClient.closeServer()

System.out.println("disconnect success")

} catch (IOException ex) {

System.out.println("not disconnect")

System.out.println(ex)

}

}

public void upload() {

this.localfilename = "D://test2//test.txt"

this.remotefilename = "test.txt"

try {

TelnetOutputStream os = ftpClient.put(this.remotefilename)

java.io.File file_in = new java.io.File(this.localfilename)

FileInputStream is = new FileInputStream(file_in)

byte[] bytes = new byte[1024]

int c

while ((c = is.read(bytes)) != -1) {

os.write(bytes, 0, c)

}

System.out.println("upload success")

is.close()

os.close()

} catch (IOException ex) {

System.out.println("not upload")

System.out.println(ex)

}

}

public void download() {

try {

TelnetInputStream is = ftpClient.get(this.remotefilename)

java.io.File file_in = new java.io.File(this.localfilename)

FileOutputStream os = new FileOutputStream(file_in)

byte[] bytes = new byte[1024]

int c

while ((c = is.read(bytes)) != -1) {

// System.out.println((char)is.read())

// System.out.println(file_in)

os.write(bytes, 0, c)

}

System.out.println("download success")

os.close()

is.close()

} catch (IOException ex) {

System.out.println("not download")

System.out.println(ex)

}

}

public void download(String remotePath,String remoteFile,String localFile) {

try {

if (remotePath.length() != 0) ftpClient.cd(remotePath)

TelnetInputStream is = ftpClient.get(remoteFile)

java.io.File file_in = new java.io.File(localFile)

FileOutputStream os = new FileOutputStream(file_in)

byte[] bytes = new byte[1024]

int c

while ((c = is.read(bytes)) != -1) {

// System.out.println((char)is.read())

// System.out.println(file_in)

os.write(bytes, 0, c)

}

System.out.println("download success")

os.close()

is.close()

} catch (IOException ex) {

System.out.println("not download")

System.out.println(ex)

}

}

public void download(String remoteFile,String localFile) {

try {

TelnetInputStream is = ftpClient.get(remoteFile)

java.io.File file_in = new java.io.File(localFile)

FileOutputStream os = new FileOutputStream(file_in)

byte[] bytes = new byte[1024]

int c

while ((c = is.read(bytes)) != -1) {

// System.out.println((char)is.read())

// System.out.println(file_in)

os.write(bytes, 0, c)

}

System.out.println("download success")

os.close()

is.close()

} catch (IOException ex) {

System.out.println("not download")

System.out.println(ex)

}

}

public static void main(String agrs[]) {

String filepath[] = { "/callcenter/index.jsp", "/callcenter/ip.txt",

"/callcenter/mainframe/image/processing_bar_2.gif",

"/callcenter/mainframe/image/logo_01.jpg" }

String localfilepath[] = { "C:\\FTP_Test\\index.jsp",

"C:\\FTP_Test\\ip.txt", "C:\\FTP_Test\\processing_bar_2.gif",

"C:\\FTP_Test\\logo_01.jpg" }

download fu = new download()

fu.connectServer("172.16.1.66",22, "web_test", "123456","/callcenter")

for(int i=0i<filepath.lengthi++){

fu.download(filepath[i],localfilepath[i])

}

//fu.upload()

//fu.download()

fu.closeConnect()

}

}