`

获取ftp上文件的最后修改时间

 
阅读更多
/**
 * 
 */
package com.zjpii.hxj.util;
import java.io.IOException;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
/**
 * 对ftp上的文件进行操作的类
 * 使用Apache的commons-net-1.4.1.jar包
 * @author hxj
 * @date 2008-11-1
 *
 */
public class FtpUtil {
    
    /**
     * 获取ftp上文件的最后修改时间
     * @param host     ftp主机地址 e.g. "127.0.0.1"
     * @param username 用户名      e.g. "username"
     * @param password 密码        e.g. "passowrd"
     * @param path     文件路径    e.g. "ftputil/test.txt"
     * @return Date 如果连接成功返回java.util.Date时间,如果连接失败返回null
     * @throws IOException 
     * @throws SocketException 
     */
    public Date getFileLastModifiedTime(String host,String username,String password,String path) throws SocketException, IOException{
        Date lastModifiedDate = null;
        FTPClient ftpClient = new FTPClient();
        ftpClient.connect(host);
        boolean isLogin = ftpClient.login(username, password);
        //连接ftp失败返回null
        if(!isLogin){
            ftpClient.disconnect();
            ftpClient = null;
            return null;
        }
        //获取ftp上path路径下的文件
        FTPFile[] fileList = ftpClient.listFiles(path);
        for (int i = 0; i < fileList.length; i++) {
            lastModifiedDate = fileList[i].getTimestamp().getTime();
        }
        return lastModifiedDate;
    }
    
    /**
     * 获得ftp路径下面所有文件的修改时间
     * @param host     ftp主机地址 e.g. "127.0.0.1"
     * @param username 用户名      e.g. "username"
     * @param password 密码        e.g. "passowrd"
     * @param path     文件路径    e.g. "ftputil"
     * @return java.util.Map 连接成功返回一个key是文件名,value是最后修改时间(java.util.Date)的一个map;连接失败返回null
     * @throws SocketException
     * @throws IOException
     */
    public Map getAllFileLastModifiedTime(String host,String username,String password,String path) throws SocketException, IOException{
        Date lastModifiedDate = null;
        FTPClient ftpClient = new FTPClient();
        ftpClient.connect(host);
        boolean isLogin = ftpClient.login(username, password);
        //连接ftp失败返回null
        if(!isLogin){
            ftpClient.disconnect();
            ftpClient = null;
            return null;
        }
        //获取ftp上path路径下的文件
        FTPFile[] fileList = ftpClient.listFiles(path);
        //HashMap容量:fileList.length
        Map map = new HashMap(fileList.length);
        for (int i = 0; i < fileList.length; i++) {
            lastModifiedDate = fileList[i].getTimestamp().getTime();
            //key 文件名;value修改时间(java.util.Date)
            map.put(fileList[i].getName(), lastModifiedDate);
        }
        return map;
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        FtpUtil ftpUtil = new FtpUtil();
        try {
            String host = "134.98.8.214";
            String username = "hz";
            String password = "hz";
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
            Date date =ftpUtil.getFileLastModifiedTime(host, username, password, "qxtmp/wangjun-test.txt");
            System.out.println("method1:"+dateFormat.format(date));
            
            Map map = ftpUtil.getAllFileLastModifiedTime(host, username, password, "qxtmp");
            System.out.println(map.size());
            System.out.println("method2:"+dateFormat.format(map.get("ipashd.txt")));
            
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
分享到:
评论

相关推荐

    Java 实现对比ftp文件和本地文件的修改时间 更新本地文件

    Java 实现对比ftp文件和本地文件的修改时间 ftp服务器文件比本地文件新时 把服务器文件下载覆盖本地文件 更新本地文件

    java定时从ftp服务器更新相关文件

    `needToUpdate()`方法应根据实际需求实现,通常会比较本地文件和FTP文件的最后修改时间。最后,确保正确关闭和断开FTP连接。 这个例子只是一个基本的起点,实际应用中可能需要处理更复杂的逻辑,如错误处理、断点续...

    Delphi根据文件更新时间上传下载的FTP程序..rar

    本项目“Delphi根据文件更新时间上传下载的FTP程序”是一个利用Delphi构建的FTP客户端应用,它具有检查本地文件与远程服务器上文件的修改时间的功能,并能自动上传或下载更新的文件。以下将详细解析这个项目的知识点...

    命令行下获取远程FTP目录文件

    介绍:该脚本是为解决相关工程定时同步获取ftp相关文件而编写的;简单高效,并且可行。需要下载资源的同学自行修改相关IP、用户名/密码、指定文件名以及相关路径 使用方法: (1)运行FtpCommand.bat (2)再运行...

    ftp上传文件,下载文件,删除文件,改文件名,创建文件等

    在网上找了好多关于ftp技术的资料,...其中还有一些对ftp文件的删除、修改文件夹名称,创建文件夹,获取文件明细等,需要自己调试。有一个word文档,在win10下如何开启ftp,正在研究如何使用C#代码,实现一键开启ftp...

    FTP.rar_PowerBuilder 服务_ftp_ftp 对比时间_ftp 时间 文件_对比更新

    实现这个功能时,PowerBuilder可以创建一个FTP连接对象,使用FTP命令如`LIST`获取服务器文件的详细信息,包括其修改时间。然后,将这些信息与本地文件的修改时间进行比较。如果服务器文件较新,程序就可以执行下载...

    DOS批处理ftp下载文件

    FTP(File Transfer Protocol)则是一种用于在网络上进行文件传输的标准协议。将两者结合,我们可以创建一个DOS批处理脚本来批量下载FTP服务器上的文件。这个示例就是关于如何通过DOS批处理实现这一功能。 首先,...

    Python 获取ftp服务器文件时间的方法

    通过本文介绍的方法,我们可以轻松地获取FTP服务器上文件的最后修改时间,并将其转换为时间戳的形式,进而方便进行各种基于时间的操作。这对于自动化运维、数据同步等工作非常有用。希望本文能够帮助到正在寻找解决...

    批处理实现自动传输FTP服务器文件

    为了自动化FTP文件的上传或下载,可以使用批处理脚本来调用上述FTP命令。批处理脚本是一种简单的脚本语言,主要用于在Windows环境中自动执行一系列命令。下面是一个简单的示例脚本,用于自动上传文件到FTP服务器: ...

    php实现通过ftp上传文件

    它包含了遍历目录、获取文件修改时间等方法,以便找出需要上传的文件。`FilerFile::Zip()`方法用于过滤出最近修改的文件,并将它们存储在一个数组中。然后,使用`ftp-&gt;upload()`方法将这些文件逐个上传到FTP服务器。...

    FTP下载文件的示例程序

    在这个基于MFC(Microsoft Foundation Classes)的示例程序中,开发者利用VS2015(Visual Studio 2015)作为集成开发环境,创建了一个能够实现FTP文件下载功能的应用程序。 MFC是微软提供的C++类库,它封装了...

    webFTP一个PHP写的在线FTP文件管理系统

    webFTP是一个基于PHP开发的在线FTP文件管理系统,它允许用户通过Web界面进行FTP服务器的文件管理和操作,极大地提升了FTP管理的便捷性和灵活性。作为一个轻量级的解决方案,webFTP使得用户无需安装专门的FTP客户端...

    FTP远程文件同步更新

    3. 智能同步:通过比较文件的修改时间或内容哈希值来确定是否需要更新。 FTP的安全性: 尽管FTP方便,但其传输数据时默认不加密,可能导致敏感信息暴露。因此,现在更推荐使用FTPS(FTP over SSL/TLS)或SFTP(SSH ...

    FTP下载自动更新文件

    时间戳可以用来记录文件的最后修改日期,以便确定是否需要更新。程序会比较本地文件的时间戳和服务器上的时间戳,如果服务器上的文件更新,就会触发下载。 5. C#编程语言:C#是.NET框架的主要开发语言,具有丰富的...

    Delphi中利用IDFTP删除FTP服务器中的文件及文件夹

    在Delphi编程环境中,IDFTP组件是用于执行FTP(File Transfer Protocol)操作的强大工具,它提供了丰富的功能,包括上传、下载、重命名以及删除FTP服务器上的文件和目录。本篇文章将详细阐述如何利用IDFTP组件在...

    winform实现FTP上传、下载、删除文件

    要实现FTP文件上传,我们首先创建一个`FtpWebRequest`对象,设置其方法为`WebMethod.UploadFile`,然后提供FTP服务器的URL、用户名和密码。接着,打开一个流写入器,将本地文件内容写入请求的主体,最后发送请求并...

    C#实现FTP对文件的操作

    创建一个FileStream来读取本地文件,然后使用FtpWebRequest.GetRequestStream()方法获取FTP服务器的上传流,并将本地文件内容写入这个流。 ```csharp request.Method = WebRequestMethods.Ftp.UploadFile; using ...

    C# 获取指定文件的基本信息

    在C#编程中,获取指定文件的基本信息是常见的任务,这包括文件的名称、大小、创建日期、修改日期等属性。下面将详细讲解如何利用C#的System.IO命名空间中的类来实现这一功能。 首先,我们需要引入System.IO命名空间...

    C# winform 在线上传和浏览FTP服务器图片

    FTP(File Transfer Protocol)是一种广泛使用的协议,用于在网络上进行文件传输。在C#中,我们可以利用System.Net命名空间中的FtpWebRequest和FtpWebResponse类来与FTP服务器进行交互。 1. **FTP连接**: 首先,...

Global site tag (gtag.js) - Google Analytics