2012-07-13 41 views
0

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

下面是函数,

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()); 
     } 
    } 

任何人能帮助我,指出我的错误?

谢谢

+0

你试过回显ftpFileDate.getTime()吗?另外,您是否有权查看相关文件? – 2012-07-13 19:38:01

+0

是的,我有权限访问文件,即使我可以下载文件。 – 2012-07-13 19:50:52

+0

我也尝试打印ftpFileDate.getTime()并且它返回正确的lastmodifed日期。 – 2012-07-13 19:51:28

回答

0

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

可能它只是一个缺少的路径分隔符?

+0

我得到了解决方案,路径分隔符是它的原因。否则功能是好的。感谢您的建议。 – 2012-07-13 19:58:19