2

FTP の特定のフォルダーからファイルをダウンロードする必要がありますが、過去 1 時間以内に作成されたもののみです。したがって、基本的には、そのフォルダーからすべてのファイルを一覧表示し、タイム スタンプが実行時間から 1 時間以上変わらないファイルのみをダウンロードする必要があります。FTP 上のファイルのタイム スタンプを解析する方法についてのアイデアはありますか? サードパーティの FTP クライアント ライブラリを使用できません。

4

3 に答える 3

1

主なタスクは、ファイルのタイムスタンプを読み取ることではなく、過去 1 時間以内に変更されたことを判断することである可能性があります。サーバーが同じタイムゾーンにある場合、それはあなたの時間と同じになります。そうでない場合は、タイムシフトが発生します。常に同じサーバーを使用している場合、これはかなり信頼できる方法で修正できます。しかし、世界中で複数のサーバーを使用している場合、これはもう少し複雑になります。だから知っておいてください。

于 2012-04-12T11:03:33.453 に答える
1

とりあえず思いついたのがこれ。確かに、これを処理するためのよりエレガントな方法がありますが...

foreach (var fileName in filesNamesFromFtpFolder)
        {
            FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(@"ftp://" + host + @"/" + folder + @"/" + fileName);

            request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
            request.Proxy = null;

            using (FtpWebResponse resp = (FtpWebResponse)request.GetResponse())
            {
                if (DateTime.Now.Subtract(TimeSpan.FromMinutes(60)) < resp.LastModified)
                {
                    //download this file...
                }
            }
        }
于 2012-04-13T10:56:27.507 に答える