2

FTP サーバーにディレクトリを作成しようとしています。Google 検索では、この質問がここに表示されます。 だから私はジョンが彼の答えとして書いたものに従いました:

    private static void MakeDirectory(string directory)
    {
        Log("Making directory...");

        var request = (FtpWebRequest)WebRequest.Create(directory);

        request.Method = WebRequestMethods.Ftp.MakeDirectory;
        request.Credentials = new NetworkCredential("user", "pass");

        try
        {
            using (var resp = (FtpWebResponse)request.GetResponse()) // Exception occurs here
            {
                Log(resp.StatusCode.ToString());
            }
        }
        catch (WebException ex)
        {
            Log(ex.Message);
        }
    }

ディレクトリが存在することを確認する方法があります。

    public bool DirectoryExists(string directory)
    {
        bool directoryExists;

        var request = (FtpWebRequest)WebRequest.Create(directory);
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential("user", "pass");

        try
        {
            using (request.GetResponse())
            {
                directoryExists = true;
            }
        }
        catch (WebException)
        {
            directoryExists = false;
        }
        return directoryExists;
    }

チェックは実際に機能します。存在する場合は を返しtrue、存在しない場合は を返しますfalse。ただし、 my を実行するたびに、MakeDirectory()上記の行で例外が発生します。

The remote server returned an error: (550) File unavailable (e.g., file not found, no access).

何か不足していますか?GetResponse()私のディレクトリのチェックでは動作するのに、私の では動作しないのはなぜMakeDirectory()ですか?

4

1 に答える 1

1

結局のところ、これは私たちのWebサーバーを運営している会社の問題でした。彼らは昨夜、私だけでなくすべてのクライアントに影響を与えるFTP更新を行いました。それ以来、彼らは問題を修正しました。それが彼らのせいであると認めるのにちょうど1日かかりました。

于 2013-01-31T21:44:50.563 に答える