无法将“System.Net.FileWebRequest”类型的对象转换为“System.Net.HttpWebRequest”类型

Jay*_* Ng 2 .net c# c#-3.0 c#-4.0

我在尝试上传到 FTP 时遇到上述错误。但是当我尝试从本地计算机运行此代码时,它出现错误。好心提醒。

这是我的代码如下:

 static void Main(string[] args)
    {

        var yourListOfFilePaths = Directory.GetFiles(filepath);

        using (ZipFile zip = new ZipFile())
        {
            foreach (string filePath in yourListOfFilePaths)
            {
                zip.AddFile(filePath);    // FILE PATH LOCATION / WHICH FOLDER FILES YOU WANTED TO ZIP
                zip.Password = "abc1234"; // CHANGE YOUR PASSWORD HERE 
            }
            zip.Save(ZipPath + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip");

            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("http://www.bitrix24.com/" + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip");
            request.Method = WebRequestMethods.Ftp.UploadFile;
            // This example assumes the FTP site uses anonymous logon.
            request.Credentials = new NetworkCredential("jayden@bitrix24.com", "abc123");

            // Copy the contents of the file to the request stream.
            StreamReader sourceStream = new StreamReader(ZipPath + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip");
            byte[] fileContents = File.ReadAllBytes("filepath");
            sourceStream.Close();
            request.ContentLength = fileContents.Length;
            request.KeepAlive = false;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
            response.Close();

        }
    }
Run Code Online (Sandbox Code Playgroud)

Yuv*_*kov 5

这:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("http://www.bitrix24.com/"
                              + "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip");
Run Code Online (Sandbox Code Playgroud)

是你的问题。您发送的地址以“http”而不是“ftp”开头。

更改您的网址:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.bitrix24.com/" + 
                                "\\Batch_" + DateTime.Now.ToString("ddMMyy") + ".zip");
Run Code Online (Sandbox Code Playgroud)