用java怎么获取ftp上的文件

Python010

用java怎么获取ftp上的文件,第1张

public class FtpClientUtil {FtpClient ftpClientprivate String serverprivate int portprivate String userNameprivate String userPasswordpublic FtpClientUtil(String server,int port,String userName,String userPassword){this.server=serverthis.port=portthis.userName=userNamethis.userPassword=userPassword}/*** 链接到服务器* @return*/public boolean open(){if(ftpClient!=null&&ftpClient.serverIsOpen())return truetry{ftpClient= new FtpClient()ftpClient.openServer(server,port)ftpClient.login(userName, userPassword)ftpClient.binary()return true}catch(Exception e){e.printStackTrace()ftpClient=nullreturn false}}public boolean cd(String dir){boolean f = falsetry {ftpClient.cd(dir)} catch (IOException e) {Logs.error(e.toString())return f}return true}/*** 上传文件到FTP服务器* @param localPathAndFileName 本地文件目录和文件名* @param ftpFileName 上传后的文件名* @param ftpDirectory FTP目录如:/path1/pathb2/,如果目录不存在回自动创建目录* @throws Exception*/public boolean upload(String localDirectoryAndFileName,String ftpFileName,String ftpDirectory)throws Exception {if(!open())return falseFileInputStream is=nullTelnetOutputStream os=nulltry{char ch = ' 'if (ftpDirectory.length() >0)ch = ftpDirectory.charAt(ftpDirectory.length() - 1)for (ch == '/' || ch == '\\'ch = ftpDirectory.charAt(ftpDirectory.length() - 1))ftpDirectory = ftpDirectory.substring(0, ftpDirectory.length() - 1)int slashIndex = ftpDirectory.indexOf(47)int backslashIndex = ftpDirectory.indexOf(92)int index = slashIndexString dirall = ftpDirectoryif (backslashIndex != -1 &&(index == -1 || index >backslashIndex))index = backslashIndexString directory = ""while (index != -1) {if (index >0) {String dir = dirall.substring(0, index)directory = directory + "/" + dirftpClient.sendServer("XMKD " + directory + "\r\n")ftpClient.readServerResponse()}dirall = dirall.substring(index + 1)slashIndex = dirall.indexOf(47)backslashIndex = dirall.indexOf(92)index = slashIndexif (backslashIndex != -1 &&(index == -1 || index >backslashIndex))index = backslashIndex}ftpClient.sendServer("XMKD " + ftpDirectory + "\r\n")ftpClient.readServerResponse()os = ftpClient.put(ftpDirectory + "/"+ ftpFileName)File file_in = new File(localDirectoryAndFileName)is = new FileInputStream(file_in)byte bytes[] = new byte[1024]int iwhile ((i = is.read(bytes)) != -1)os.write(bytes, 0, i)//清理垃圾return true}catch(Exception e){e.printStackTrace()return false}finally{if (is != null)is.close()if (os != null)os.close()}}/*** 从FTP服务器上下载文件并返回下载文件长度* @param ftpDirectoryAndFileName* @param localDirectoryAndFileName* @return* @throws Exception*/public long download(String ftpDirectoryAndFileName,String localDirectoryAndFileName)throws Exception{long result = 0if(!open())return resultTelnetInputStream is = nullFileOutputStream os = nulltry{is = ftpClient.get(ftpDirectoryAndFileName)java.io.File outfile = new java.io.File(localDirectoryAndFileName)os = new FileOutputStream(outfile)byte[] bytes = new byte[1024]int cwhile ((c = is.read(bytes)) != -1){os.write(bytes, 0, c)result = result + c}}catch (Exception e){throw e}finally{if (is != null)is.close()if (os != null)os.close()}return result}/*** 返回FTP目录下的文件列表* @param ftpDirectory* @return*/public List<String>getFileNameList(String ftpDirectory){List<String>list = new ArrayList<String>()if(!open())return listtry{DataInputStream dis = new DataInputStream(ftpClient.nameList(ftpDirectory))String filename = ""while((filename=dis.readLine())!=null){list.add(filename)}} catch (Exception e){e.printStackTrace()}return list}/*** 删除FTP上的文件* @param ftpDirAndFileName*/public boolean deleteFile(String ftpDirAndFileName){if(!open())return falseftpClient.sendServer("DELE "+ftpDirAndFileName+"\r\n")return true}/*** 删除FTP目录* @param ftpDirectory*/public boolean deleteDirectory(String ftpDirectory){if(!open())return falseftpClient.sendServer("XRMD "+ftpDirectory+"\r\n")return true}/*** 关闭链接*/public void close(){try{if(ftpClient!=null&&ftpClient.serverIsOpen())ftpClient.closeServer()}catch(Exception e){}} }望采纳,谢谢。

您好,要获取FTP文件的当前日期,可以使用Java的FTPClient类。FTPClient类提供了一些方法,可以获取文件的当前日期,包括getModificationTime()、getTimestamp()和getLastModified()。这些方法可以获取文件的最后修改时间,以及文件的最后修改时间,以及文件的最后修改日期。

要使用这些方法,首先需要连接到FTP服务器,然后使用FTPClient类的listFiles()方法获取文件列表,然后使用getModificationTime()、getTimestamp()和getLastModified()方法获取文件的最后修改时间,以及文件的最后修改日期。

另外,Java还提供了一个FTPFile类,可以获取文件的最后修改时间,以及文件的最后修改日期。FTPFile类提供了getTimestamp()方法,可以获取文件的最后修改时间,以及文件的最后修改日期。

总之,使用Java的FTPClient类和FTPFile类,可以轻松获取FTP文件的当前日期。