c# Ftp上传在Windows 10通用应用程序

本文关键字:10通 应用程序 Windows Ftp | 更新日期: 2023-09-27 18:10:59

我想使用ftp从windows 10应用程序上传文件,我尝试了以下代码。

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    namespace Examples.System.Net
    {
        public class WebRequestGetExample
        {
            public static void Main ()
            {
        // Get the object used to communicate with the server.
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
        request.Method = WebRequestMethods.Ftp.UploadFile;
        // This example assumes the FTP site uses anonymous logon.
        request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
        // Copy the contents of the file to the request stream.
        StreamReader sourceStream = new StreamReader("testfile.txt");
        byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
        sourceStream.Close();
        request.ContentLength = fileContents.Length;
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(fileContents, 0, fileContents.Length);
        requestStream.Close();
        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
        response.Close();
        }
    }
        }
    }

但是visual studio找不到名称空间FtpWebRequestWebRequestMethods。另一种方法我尝试使用后台传输api的链接,但它说WinRT information: 'uri': Uploading content is only supported for 'http' and 'https' schemes.不是ftp.

所以有任何解决方案,我可以显示进度条和速度?

c# Ftp上传在Windows 10通用应用程序

FtpWebRequest类不是UWP应用程序的存储配置文件的一部分,并且FTP上传(根据您的决定)不支持通过BackgroundTransfer API。这样您就可以通过套接字实现自己的FTP协议。请参阅WinRT中的FTP Endeavor以获得解释和示例链接。

试试这个:https://github.com/kiewic/FtpClient

如果你不能打开项目(例如VS 2017),只需从其中取出两个相关的类。