0

FTP接続を介して別のホストにアップロードすることについて、何か新しいことを学ぼうとしています。単一のファイルをアップロードする方法を知っています。しかし、完全なサブフォルダーとそこに存在するファイルを含む完全なフォルダーをアップロードしたい場合はどうすればよいですか?

これは私の単一のファイルのアップロードです

    private void Form1_Load(object sender, EventArgs e)
    {

        Upload("Test.txt");
    }

    public void Upload(string fileToUpload)
    {
       try
        {
            FileInfo toUpload = new FileInfo(fileToUpload);

            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1/" + toUpload.Name);
            MessageBox.Show(WebRequestMethods.Ftp.ListDirectory);

            request.Method = WebRequestMethods.Ftp.UploadFile;
            request.Credentials = new NetworkCredential("Uploader", "3635451");
            Stream ftpStream = request.GetRequestStream();
            FileStream file = File.OpenRead(fileToUpload);
            int length = 1024;
            byte[] buffer = new byte[length];
            int bytesRead = 0;
            do
            {
                bytesRead = file.Read(buffer, 0, length);
                ftpStream.Write(buffer, 0, bytesRead);
            }
            while (bytesRead != 0);
            file.Close();
            ftpStream.Close();
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

私はフォルダーのアップロードについてたくさんグーグルで検索しましたが、失敗しました。

4

2 に答える 2

1

WinSCP ライブラリを使用できます。無料で、SFTP だけでなく FTP もサポートします。使いやすく、問題なく動作することがわかりました。

このPutFilesメソッドは、サブフォルダーを含むフォルダー全体を処理します。それにもSynchronizeDirectories方法があります。

于 2013-09-20T16:34:18.710 に答える
0

答えは、できません。

そのような操作を行うためのライブラリに興味があるかもしれませんが、そうでない場合は、ライブラリのソース コードを確認できます。

フォルダーをアップロードする場合は、FTP にフォルダーを作成してから、各ファイルを 1 つずつコピーする必要があります。

ローカルのフォルダーの例:

/Folder/File1.txt
/Folder/File2.txt

フォルダをアップロードする場合は「Folder」。

  1. FTPでディレクトリを作成
  2. FTP ディレクトリを開く
  3. 「File1.txt」をコピー
  4. 「File2.txt」をコピー
于 2013-09-20T14:49:16.193 に答える