當前位置:首頁 » 文件管理 » javaftp重命名

javaftp重命名

發布時間: 2024-09-14 06:35:12

『壹』 怎麼用java代碼創建ftp用戶和密碼

創建ftp用戶名和密碼,其實就在ftp伺服器的用戶文件裡面添加條記錄。
方法有兩種,我說下思路。
一、你可以用java程序找到相應的配置文件,打開、把用戶名密碼寫入進去。ok了。
二、你用用java程序調用創建ftp用戶的命令,來創建ftp用戶。

『貳』 用java實現ftp下載,路徑的問題,很暈

ftpClient.changeWorkingDirectory(」20110814「),你應該這么寫,如果用/開頭表示是絕對路徑,而 20110814表示是相對路徑,你看下絕對路徑跟相對路徑就明白了

『叄』 JAVA怎麼實現刪除遠程FTP伺服器上的某一文件

一個JAVA 實現FTP功能的代碼,包括了伺服器的設置模塊,並包括有上傳文件至FTP的通用方法、下載文件的通用方法以及刪除文件、在ftp伺服器上傳文件夾、檢測文件夾是否存在等,裡面的有些代碼對編寫JAVA文件上傳或許有參考價值,

(1):Java FTP主文件代碼:

package ftpDemo;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import sun.net.TelnetInputStream;

import sun.net.TelnetOutputStream;

import sun.net.ftp.FtpClient;

public class ftpUtil {

// 上傳文件至FTP通用方法

public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost為FTP伺服器的IP地址,port為FTP伺服器的登陸埠,ftpHost為String型,port為int型。

ftpClient.login(userName, passWord);// userName、passWord分別為FTP伺服器的登陸用戶名和密碼

ftpClient.binary();

ftpClient.cd(path);// path為FTP伺服器上保存上傳文件的路徑。

TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName為上傳的文件名

DataOutputStream dataOut = new DataOutputStream(telnetOut);

byte buffer[] = new byte[ * ];

int count = ;

while ((count = is.read(buffer)) != -) {

dataOut.write(buffer, , count);

}

telnetOut.close();

dataOut.close();

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("上傳文件失敗!請檢查系統FTP設置,並確認FTP服務啟動");

}

}

// 刪除文件至FTP通用方法

public static void deleteFileFtp(KmConfig kmConfig,String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost為FTP伺服器的IP地址,port為FTP伺服器的登陸埠,ftpHost為String型,port為int型。

ftpClient.login(userName, passWord);// userName、passWord分別為FTP伺服器的登陸用戶名和密碼

ftpClient.binary();

ftpClient.cd(path);// path為FTP伺服器上保存上傳文件的路徑。

try {

ftpClient.sendServer("dele " + fileName + " ");

} catch (Exception e) {

System.out.println("刪除文件失敗!請檢查系統FTP設置,並確認FTP服務啟動");

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("刪除文件失敗!");

}

}

// 下載ftp文件

public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost為FTP伺服器的IP地址,port為FTP伺服器的登陸埠,ftpHost為String型,port為int型。

ftpClient.login(userName, passWord);// userName、passWord分別為FTP伺服器的登陸用戶名和密碼

ftpClient.binary();

ftpClient.cd(path);// path為FTP伺服器上保存上傳文件的路徑。

try {

TelnetInputStream in = ftpClient.get(fileName);

byte[] bytes = new byte[];

int cnt=;

while ((cnt=in.read(bytes,,bytes.length)) != -) {

outputStream.write(bytes, , cnt);

}

outputStream.close();

in.close();

} catch (Exception e) {

ftpClient.closeServer();

e.printStackTrace();

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("下載文件失敗!請檢查系統FTP設置,並確認FTP服務啟動");

}

}

//在ftp伺服器上傳件文件夾

public boolean createDir(String path,FtpClient ftpClient) throws Exception{

//進入到home文件夾下

ftpClient.cd("/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>

// ftpclient.sendServer("XMKD /test/bb/r/n"); //執行伺服器上的FTP命令<br>

// ftpclient.readServerResponse一定要在sendServer後調用<br>

// nameList("/test")獲取指目錄下的文件列表<br>

// XMKD建立目錄,當目錄存在的情況下再次創建目錄時報錯<br>

// XRMD刪除目錄<br>

// DELE刪除文件<br>

//通過遠程命令 穿件一個files文件夾

ftpClient.sendServer("MKD "+ path + " ");

//這個方法必須在 這兩個方法中間調用 否則 命令不管用

ftpClient.binary();

ftpClient.readServerResponse();

return false;

}

/**

* 檢查文件夾是否存在

* @param dir

* @param ftpClient

* @return

*/

public boolean isDirExist(String dir, FtpClient ftpClient) {

try {

ftpClient.cd(dir);

} catch (Exception e) {

return false;

}

return true;

}

}

(2):KmConfig.java代碼如下:定義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):下面是測試代碼:

『肆』 java 實現ftp上傳如何創建文件夾

這個功能我也剛寫完,不過我也是得益於同行,現在我也把自己的分享給大家,希望能對大家有所幫助,因為自己的項目不涉及到創建文件夾,也僅作分享,不喜勿噴謝謝!

interface:
packagecom.sunline.bank.ftputil;

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importorg.apache.commons.net.ftp.FTPClient;

publicinterfaceIFtpUtils{
/**
*ftp登錄
*@paramhostname主機名
*@paramport埠號
*@paramusername用戶名
*@parampassword密碼
*@return
*/
publicFTPClientloginFtp(Stringhostname,Integerport,Stringusername,Stringpassword);
/**
*上穿文件
*@paramhostname主機名
*@paramport埠號
*@paramusername用戶名
*@parampassword密碼
*@paramfpathftp路徑
*@paramlocalpath本地路徑
*@paramfileName文件名
*@return
*/
(Stringhostname,Integerport,Stringusername,Stringpassword,Stringfpath,Stringlocalpath,StringfileName);
/**
*批量下載文件
*@paramhostname
*@paramport
*@paramusername
*@parampassword
*@paramfpath
*@paramlocalpath
*@paramfileName源文件名
*@paramfilenames需要修改成的文件名
*@return
*/
publicbooleandownloadFileList(Stringhostname,Integerport,Stringusername,Stringpassword,Stringfpath,Stringlocalpath,StringfileName,Stringfilenames);
/**
*修改文件名
*@paramlocalpath
*@paramfileName源文件名
*@paramfilenames需要修改的文件名
*/
(Stringlocalpath,StringfileName,Stringfilenames);
/**
*關閉流連接、ftp連接
*@paramftpClient
*@parambufferRead
*@parambuffer
*/
publicvoidcloseFtpConnection(FTPClientftpClient,,BufferedInputStreambuffer);
}

impl:
packagecom.sunline.bank.ftputil;

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importorg.apache.commons.net.ftp.FTPClient;
importorg.apache.commons.net.ftp.FTPFile;
importorg.apache.commons.net.ftp.FTPReply;
importcommon.Logger;

{
privatestaticLoggerlog=Logger.getLogger(FtpUtilsImpl.class);
FTPClientftpClient=null;
Integerreply=null;

@Override
publicFTPClientloginFtp(Stringhostname,Integerport,Stringusername,Stringpassword){
ftpClient=newFTPClient();
try{
ftpClient.connect(hostname,port);
ftpClient.login(username,password);
ftpClient.setControlEncoding("utf-8");
reply=ftpClient.getReplyCode();
ftpClient.setDataTimeout(60000);
ftpClient.setConnectTimeout(60000);
//設置文件類型為二進制(避免解壓縮文件失敗)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
//開通數據埠傳輸數據,避免阻塞
ftpClient.enterLocalActiveMode();
if(!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())){
log.error("連接FTP失敗,用戶名或密碼錯誤");
}else{
log.info("FTP連接成功");
}
}catch(Exceptione){
if(!FTPReply.isPositiveCompletion(reply)){
try{
ftpClient.disconnect();
}catch(IOExceptione1){
log.error("登錄FTP失敗,請檢查FTP相關配置信息是否正確",e1);
}
}
}
returnftpClient;
}

@Override
@SuppressWarnings("resource")
(Stringhostname,Integerport,Stringusername,Stringpassword,Stringfpath,Stringlocalpath,StringfileName){
booleanflag=false;
ftpClient=loginFtp(hostname,port,username,password);
BufferedInputStreambuffer=null;
try{
buffer=newBufferedInputStream(newFileInputStream(localpath+fileName));
ftpClient.changeWorkingDirectory(fpath);
fileName=newString(fileName.getBytes("utf-8"),ftpClient.DEFAULT_CONTROL_ENCODING);
if(!ftpClient.storeFile(fileName,buffer)){
log.error("上傳失敗");
returnflag;
}
buffer.close();
ftpClient.logout();
flag=true;
returnflag;
}catch(Exceptione){
e.printStackTrace();
}finally{
closeFtpConnection(ftpClient,null,buffer);
log.info("文件上傳成功");
}
returnfalse;
}

@Override
publicbooleandownloadFileList(Stringhostname,Integerport,Stringusername,Stringpassword,Stringfpath,Stringlocalpath,StringfileName,Stringfilenames){
ftpClient=loginFtp(hostname,port,username,password);
booleanflag=false;
=null;
if(fpath.startsWith("/")&&fpath.endsWith("/")){
try{
//切換到當前目錄
this.ftpClient.changeWorkingDirectory(fpath);
this.ftpClient.enterLocalActiveMode();
FTPFile[]ftpFiles=this.ftpClient.listFiles();
for(FTPFilefiles:ftpFiles){
if(files.isFile()){
System.out.println("=================="+files.getName());
FilelocalFile=newFile(localpath+"/"+files.getName());
bufferRead=newBufferedOutputStream(newFileOutputStream(localFile));
ftpClient.retrieveFile(files.getName(),bufferRead);
bufferRead.flush();
}
}
ftpClient.logout();
flag=true;

}catch(IOExceptione){
e.printStackTrace();
}finally{
closeFtpConnection(ftpClient,bufferRead,null);
log.info("文件下載成功");
}
}
modifiedLocalFileName(localpath,fileName,filenames);
returnflag;
}

@Override
(Stringlocalpath,StringfileName,Stringfilenames){
Filefile=newFile(localpath);
File[]fileList=file.listFiles();
if(file.exists()){
if(null==fileList||fileList.length==0){
log.error("文件夾是空的");
}else{
for(Filedata:fileList){
Stringorprefix=data.getName().substring(0,data.getName().lastIndexOf("."));
Stringprefix=fileName.substring(0,fileName.lastIndexOf("."));
System.out.println("index==="+orprefix+"prefix==="+prefix);
if(orprefix.contains(prefix)){
booleanf=data.renameTo(newFile(localpath+"/"+filenames));
System.out.println("f============="+f);
}else{
log.error("需要重命名的文件不存在,請檢查。。。");
}
}
}
}
}


@Override
publicvoidcloseFtpConnection(FTPClientftpClient,,BufferedInputStreambuffer){
if(ftpClient.isConnected()){
try{
ftpClient.disconnect();
}catch(IOExceptione){
e.printStackTrace();
}
}
if(null!=bufferRead){
try{
bufferRead.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
if(null!=buffer){
try{
buffer.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}


publicstaticvoidmain(String[]args)throwsIOException{
Stringhostname="xx.xxx.x.xxx";
Integerport=21;
Stringusername="edwftp";
Stringpassword="edwftp";
Stringfpath="/etl/etldata/back/";
StringlocalPath="C:/Users/Administrator/Desktop/ftp下載/";
StringfileName="test.txt";
Stringfilenames="ok.txt";
FtpUtilsImplftp=newFtpUtilsImpl();
/*ftp.modifiedLocalFileName(localPath,fileName,filenames);*/
ftp.downloadFileList(hostname,port,username,password,fpath,localPath,fileName,filenames);
/*ftp.uploadLocalFilesToFtp(hostname,port,username,password,fpath,localPath,fileName);*/
/*ftp.modifiedLocalFileName(localPath);*/
}
}

『伍』 如何 用Java 實現 獲取FTP伺服器上的所有文件名,已知FTP的密碼,用戶名!遠程獲取!

public void ftpJdomFile(String dir) throws FileNotFoundException, IOException{
//創立根節點
// 下面這個方法是列出指定目錄下的所有文件和文件夾
List dirslist=Arrays.asList(new File(dir).listFiles());
for (Iterator i = dirslist.iterator(); i.hasNext();) {
// System.out.println(i.next()); // line 1
String s=i.next().toString();
if (new File(s).isFile()) {
System.out.println(s+"-文件");
}
if (new File(s).isDirectory()) {
System.out.println(s+"++++++++文件夾");
ftpJdomFile(s);
}

}

}

『陸』 Java FTPClient 連接FTP,上傳文件,不能以中文保存

在連接之前設置ftpClient.setControlEncoding("GBK");連接之後再設置是沒有作用的。

『柒』 java FTPClient如何刪除遠程伺服器端的文件夾及其子文件夾及其內容!

假如文件夾裡面有文件的話,ftpclient根本刪除不了文件夾,不像其他api可以自動遞歸刪除,所以得先刪除文件夾裡面的文件,然後在刪除文件夾,
刪除之前記得改變下工作目錄 fileName是dirName裡面的文件
ftpClient.changeWorkingDirectory(remoteDir+dirName)

刪除文件命令:ftpClient.deleteFile(fileName);
刪除完文件後更改目錄ftpClient.changeWorkingDirectory(remoteDir)
刪除文件夾命令:ftpClient.removeDirectory(dirName);

『捌』 用java實現FTP需要導入什麼包,導入哪裡呢,能不能改個包

com.jcraft.jsch_0.1.31.jar,commons-net-3.2.jar。這是我實現FTP上傳使用的jar,希望對你有用。

熱點內容
二級c語言技巧 發布:2025-01-13 07:54:37 瀏覽:2
自動充值腳本 發布:2025-01-13 07:48:02 瀏覽:19
越容易壓縮 發布:2025-01-13 07:37:37 瀏覽:558
ecstore資料庫 發布:2025-01-13 07:29:43 瀏覽:297
手機設置密碼忘記了怎麼解開 發布:2025-01-13 07:28:29 瀏覽:21
存儲卡交流 發布:2025-01-13 07:16:06 瀏覽:984
php字元串浮點數 發布:2025-01-13 07:15:28 瀏覽:999
python排序cmp 發布:2025-01-13 07:09:04 瀏覽:73
雲腳本精靈 發布:2025-01-13 07:03:27 瀏覽:619
高維訪問 發布:2025-01-13 07:03:23 瀏覽:976