1

特定の FTP パスに複数のファイルが存在するかどうかを確認する方法が必要です。チェックするすべてのファイル名をリストしたリストを作成し、これらすべてがサーバー上に存在するかどうかをチェックし、存在しないファイルについてはエラーを返す必要があります。これはどれほど簡単ですか?

ありがとう

4

2 に答える 2

0

サーバーにアクセスできる場合は、そこにスクリプトを記述して、そのスクリプトを要求するだけで、サーバー要求を1つだけ行うことができます。それ以外の場合は、各ファイルを1つずつ確認する必要があります。

于 2011-01-04T11:00:43.940 に答える
0

最も安全な方法は、ディレクトリごとにファイル/ディレクトリのリストを取得し、そのリストを解析することです。

       // Get the object used to communicate with the server.
        var request = WebRequest.Create(url);

        request.Credentials = new NetworkCredential(username, password);

        request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

        try
        {
            using(var response = request.GetResponse())
            {
                using(var stream = response.GetResponseStream())
                {
                    using(var reader = new StreamReader(stream))
                    {
                        while(reader.Peek() >= 0)
                        {
                             var line = reader.ReadLine();

                             // check if this is a file or directory, filter list etc..

                        }
                    }
                }
            }
        }
        catch
        {

        }

もう 1 つの簡単なオプションは、ファイル DateTimestamp を取得して、ファイルが存在しない場合に例外をキャッチすることです。別の理由で例外がスローされる可能性があるため、例外を確認する必要があります。

        var request = WebRequest.Create(url);

        request.Credentials = new NetworkCredential(username, password);

        request.Method = WebRequestMethods.Ftp.GetDateTimestamp;

        try
        {
            using(var response = (FtpWebResponse)request.GetResponse())
            {
                // file exists
            }
        }
        catch(WebException e)
        {
            // file probably doesn't exits
        }
于 2011-01-04T11:25:11.633 に答える