2009-05-29 87 views
1

我有一個應用程序將遊戲數據文件部署到不同的遊戲控制檯。如果用戶機器和控制檯上的匹配文件具有相同的大小和日期,則不得重新部署它們。上傳到FTP後,如何在文件上設置DateTimeStamp?

在Xbox上,這很容易實現,因爲用於在控制檯上上傳文件的XDK庫允許我在上傳的文件上設置日期以匹配用戶計算機上的日期。

在Ps3上,我使用的是在控制檯上運行的FTP服務。我使用WebClient.UploadFileAsync將文件上傳到控制檯。但是,我無法弄清楚如何設置上傳文件的日期時間戳,只留下文件大小來確定相同的文件是不安全的。

我想知道是否有方法通過WebClient界面設置文件的日期時間戳?

回答

-2

WebClient將ftp連接切換到FtpWebRequest。如果您直接使用FtpWebRequest,則可以將FTP命令發送到服務器。支持的命令被定義爲WebRequestMethods.Ftp的字段。其中一個命令是GetDateTimestamp。

因此,如果您手動構建FtpWebRequest(而不是通過WebClient)併發送GateDateTimestamp或ListDirectoryDe​​tails命令,則應該能夠獲取目標文件的時間戳。

+0

嘿,他說他想「設置」時間戳。沒有明白。 – Keltex 2009-05-29 21:49:38

2

我不認爲你可以使用這個WebClient接口。

似乎有一些FTP服務器實現了各種非標準的FTP擴展命令來支持設置文件的上次修改時間。我所知道的是:

  1. MDTM - 這是獲取文件的最後修改時間(GetDateTimestamp()使用)的標準命令。某些服務器通過爲命令指定時間戳參數來支持設置操作。以及一個文件名。
  2. MFMT - 這是在IETF實驗草案MFMT中定義的,用於標準化該操作並避免上述MDTM命令的非標準使用。
  3. 現場UTIME

如果在PS3上運行FTP服務器支持這些擴展(檢查FEAT命令的結果),那麼你可以使用一個簡單的socket FTP連接發出相應的命令到的服務器上傳文件後。