転送したファイルのタイムスタンプを維持する方法

文書番号 : 36821     文書種別 : 使用方法     登録日 : 2013/11/27     最終更新日 : 2013/11/27
文書を印刷する
対象製品
Secure iNetSuite for .NET 4.0J
詳細
FTPサーバーからのダウンロードやFTPサーバーへのアップロードを行った場合、転送したファイルのタイムスタンプは転送時の日付で保存されます。
元のタイムスタンプを維持する場合は、Getメソッド、Putメソッドの同期オプション(Dart.Ftp.Synchronize)に SetDateTime を設定します。

◎サンプルコード(VB)
' ダウンロード時
Ftp1.Get("転送元ファイルパス", "転送先ファイルパス", Dart.Ftp.Synchronize.Off Or Dart.Ftp.Synchronize.SetDateTime)

' アップロード時
Ftp1.Put("転送元ファイルパス", "転送先ファイルパス", Dart.Ftp.Synchronize.Off Or Dart.Ftp.Synchronize.SetDateTime)

◎サンプルコード(C#)
// ダウンロード時
ftp1.Get("転送元ファイルパス", "転送先ファイルパス", Dart.Ftp.Synchronize.Off | Dart.Ftp.Synchronize.SetDateTime);

// アップロード時
ftp1.Put("転送元ファイルパス", "転送先ファイルパス", Dart.Ftp.Synchronize.Off | Dart.Ftp.Synchronize.SetDateTime);


なお、アップロード時にファイルのタイムスタンプを変更するには、FTPサーバー側で「MFMT」コマンドをサポートしている必要があります。
FTPサーバー側で「MFMT」コマンドをサポートしていない場合、SetDateTimeオプションを設定してアップロードしても、転送時の日付で保存されます。

「MFMT」コマンドをサポートしていないIISのFTPサーバーの場合、「MDTM」コマンドでタイムスタンプを変更することができます。

◎サンプルコード(VB)
Dim dt As DateTime = System.IO.File.GetLastWriteTime("転送元ファイルパス")
Ftp1.Put("転送元ファイルパス", "転送先ファイルパス", Dart.Ftp.Synchronize.Off Or Dart.Ftp.Synchronize.SetDateTime)
Ftp1.Send(String.Format("MDTM {0} {1}", dt.ToUniversalTime().ToString("yyyyMMddHHmmss"), "転送先ファイルパス"))

◎サンプルコード(C#)
DateTime dt = System.IO.File.GetLastWriteTime("転送元ファイルパス");
ftp1.Put("転送元ファイルパス", "転送先ファイルパス", Dart.Ftp.Synchronize.Off | Dart.Ftp.Synchronize.SetDateTime);
ftp1.Send(string.Format("MDTM {0} {1}", dt.ToUniversalTime().ToString("yyyyMMddHHmmss"), "転送先ファイルパス"));