C#Ftp在Windows 10通用应用中上传? [英] C# Ftp Upload in Windows 10 Universal app?

查看:144
本文介绍了C#Ftp在Windows 10通用应用中上传?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 使用系统;我想使用ftp上传Windows 10应用程序中的文件,我尝试了下面的代码。 
使用System.IO;
使用System.Net;
使用System.Text;

namespace Examples.System.Net
{
public class WebRequestGetExample
{
public static void Main()
{
//获取用于与服务器通信的对象。
FtpWebRequest请求=(FtpWebRequest)WebRequest.Create(ftp://www.contoso.com/test.htm);
request.Method = WebRequestMethods.Ftp.UploadFile;

//此示例假定FTP站点使用匿名登录。
request.Credentials = new NetworkCredential(anonymous,janeDoe@contoso.com);

//将文件的内容复制到请求流中。
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找不到名称空间 FtpWebRequest WebRequestMethods 。另一种方法,我尝试使用链接但它表示 WinRT信息:'uri':上传内容仅支持'http'和'https'方案。不是ftp。



那么有没有解决方案可以显示进度条和速度?

解决方案

FtpWebRequest类不是UWP应用程序的商店配置文件的一部分,并且不会通过BackgroundTransfer API支持FTP上传(如您确定的那样)。这使您可以通过套接字实现自己的FTP协议。有关说明,请参见 WinRT中的FTP奋进和一个样本的链接。

I want to upload files from windows 10 app using ftp, I tried the following code.

    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();
        }
    }
        }
    }

But visual studio couldn't find the name space FtpWebRequest or WebRequestMethods. The other method i tried using backgroundtransfer api's from link but it says that WinRT information: 'uri': Uploading content is only supported for 'http' and 'https' schemes. not ftp.

So is there any solution to this where i can show progress bar and speed?

解决方案

The FtpWebRequest class is not part of the store profile for UWP apps, and FTP upload (as you determined) is not supported via the BackgroundTransfer API. This leave you with implementing your own FTP protocol over sockets. See FTP Endeavor in WinRT for an explanation and a link to a sample.

这篇关于C#Ftp在Windows 10通用应用中上传?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆