【问题标题】:Error in setting lastmodifieddate in Java在 Java 中设置 lastmodifieddate 时出错
【发布时间】:2012-07-13 19:31:15
【问题描述】:

我尝试将本地文件夹文件的最后修改日期设置为 FTP 文件的最后修改日期。 但是,在返回值中它返回 false 并且日期也没有正确设置。

这是函数,

 public static void getModifiedDateAndTimeFromFTPFile(String FTPHost, String FTPUserName, String FTPPassword, String FTPRemoteDirectory, String localFilePath, String fileName) {
        try{
            //get Local File 
            File fileLocal = new File(localFilePath + fileName);

            //Connect to FTP and get the lastmodified time of File.
            FTPClient client = new FTPClient();
            client.connect(FTPHost);
            client.login(FTPUserName, FTPPassword);
            client.changeWorkingDirectory(FTPRemoteDirectory);          
            FTPFile ftpFile = client.listFiles(fileName)[0];

            //Get last_modified date of FTP file.
            Date ftpFileDate = ftpFile.getTimestamp().getTime();

            //Now set date to the Local File.
            boolean boolSetTime = fileLocal.setLastModified(ftpFileDate.getTime());
            System.out.println("    Was last modified time set successfully ? : " + boolSetTime);           
        } catch (Exception ex) {
            System.out.println("Error : " + ex.toString());
        }
    }

谁能帮我指出我的错误?

谢谢

【问题讨论】:

  • 您是否尝试过回显 ftpFileDate.getTime()?另外,您是否有权访问相关文件?
  • 是的,我确实有权访问文件,即使我可以下载文件。
  • 我也尝试打印 ftpFileDate.getTime() 并返回正确的最后修改日期。
  • 我找到了解决方案。路径分隔符是原因。感谢您的帮助。

标签: java file ftp timestamp last-modified


【解决方案1】:

很可能localFilePath + fileName 没有形成预期的文件名。这不会在构造 File 对象时给您一个异常,但 setLastModified(...) 总是会在不存在的文件上返回 false。

可能只是缺少路径分隔符?

【讨论】:

  • 我得到了解决方案,路径分隔符就是原因。否则功能很好。感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2011-03-28
  • 2016-09-18
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多