人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlのftpでサーバ上ファイルを新しければ上書きする方法を教えてください。
windows8PCにActivePerl5.18を入れてPerlのNet::FTPで、
PCのファイルが新しければサーバにUPする処理をしたいです。

$ftp->put(PCファイル名,サーバファイル名)
でUPは出来るのですが常に上書き転送になります。
PCファイルの日付の新しいファイルだけを上書きUPするには一発でいく
命令があるのか、それとも1つ1つ比較してUPするのでしょうか?

PCファイルはstatのlocaltimeで更新日時を取得出来ましたが
サーバー側のファイルでは
$ftp->dir;等で、ファイル一覧の取得しか自分は出来ませんでした。
「パーミション 所有者 サイズ 日時 ファイル名」等が列挙されるのですが
それを分解してファイル名と日時を取り出し、ローカルタイムスタンプと比較して
UPするといけるとは思うのですが、知らない為に面倒な事をしてる気がします。
スマートに更新日時が新しいファイルだけ転送する方法があれば教えてください。
FTPソフトを使う等ではなくperlのftpで行いたいです。
又はWindowsのバッチftpのほうが簡単に行えるならそちらでも良いです。

●質問者: cafet
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cubick
ベストアンサー

Net::FTPのmdtmメソッドでリモートファイルの更新日時が取得できるようです。

$ftp->mdtm(FILE)

http://perldoc.jp/docs/modules/libnet-1.12/Net/FTP.pod


cafetさんのコメント
取得できました、助かりますありがとうございます!

質問者から

皆さんありがとうございます。mdtmでサーバー側タイムスタンプが取得出来ることがわかり、それをもとに比較してUPするようにします。mdtmというのを知らなかったので質問の仕方がよくなかったですが勉強になりました、ありがとうございます。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ