在Portable Class Library中找不到FtpWebRequest

时间:2013-07-26 07:03:10

标签: windows-phone-7 windows-phone-8 portable-class-library ftpwebrequest

我正在尝试在ftp web服务器上传文件。我在Windows Phone中找不到 FtpWebRequest 类,所以,我正在通过添加Portable Class Library的新项目来尝试它。我添加了以下代码

 public void GetDataUsingDataContract(byte[] fileByte)
    {
        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("uname", "pass");

        // Copy the contents of the file to the request stream.
       // StreamReader sourceStream = new StreamReader("testfile.txt");
        byte[] fileContents = fileByte;//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();
    }

但也存在同样的问题,即我找不到 FtpWebResponse 类。便携式类库是否支持它?

2 个答案:

答案 0 :(得分:0)

我猜你已经有了答案,FTP的可移植子集中没有FTPWebRequest / FTPWebResponse。

此子集由您可以在所有框架上找到的API组成(Silverlight,XBox,Windows Phone 7/8,.Net x.y等...)

如果在本机框架(例如Windows Phone)中找不到api,则无法在可移植库子集中找到它。

如果你想在Windows手机上使用ftp,我想你必须找到第三方api,比如为紧凑型框架构建的OpenNETCF FTP。

https://ftp.codeplex.com/

答案 1 :(得分:0)

我不知道您是否考虑过Xamarin,但您正在寻找的实施可以在System.Net.FtpWebRequest处找到。