如何在一个FtpWebRequest中上传多个文件

时间:2019-11-04 18:45:56

标签: c# ftpwebrequest

我可以使用FtpWebRequest使用以下代码成功上传文件。

但是,如果我上传了如下所示的3个文件,则我希望在一个请求中执行此操作,而无需每次都传递用户名和密码。因为我认为如果我理解正确,我现在会向服务器打开3个请求?

如果是这样。连接如何始终保持打开状态?重要的是,如果需要再次输入用户名和密码来打开新请求,如何在执行请求之前检查连接是否打开?

我知道下一行与此有关,但是我不知道如何完全正确地设置上述方案:

request.KeepAlive = true;

完整代码:

        void uploadFilesToFTP()
        {
            List<String> fileLIST = new List<String>();
            fileLIST.Add("C:/ESD/test0.txt");
            fileLIST.Add("C:/ESD/test1.txt");
            fileLIST.Add("C:/ESD/test2.txt");
            for (int i = 0; i < fileLIST.Count; i++)
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://someurl.net/folder1/test" + i.ToString() + ".txt");
                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.EnableSsl = false;
                request.Credentials = new NetworkCredential("username", "password");
                request.KeepAlive = true;

                //Read the file's contents into a byte array.
                if (File.Exists(fileLIST[i]))
                {
                    //Write the bytes into the request stream.
                    byte[] bytes = System.IO.File.ReadAllBytes(fileLIST[i]);
                    request.ContentLength = bytes.Length;
                    using (Stream request_stream = request.GetRequestStream())
                    {
                        request_stream.Write(bytes, 0, bytes.Length);
                        request_stream.Close();
                    }
                }
            }
        }

0 个答案:

没有答案