2012-07-13 58 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