我正在尝试在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 类。便携式类库是否支持它?
答案 0 :(得分:0)
我猜你已经有了答案,FTP的可移植子集中没有FTPWebRequest / FTPWebResponse。
此子集由您可以在所有框架上找到的API组成(Silverlight,XBox,Windows Phone 7/8,.Net x.y等...)
如果在本机框架(例如Windows Phone)中找不到api,则无法在可移植库子集中找到它。
如果你想在Windows手机上使用ftp,我想你必须找到第三方api,比如为紧凑型框架构建的OpenNETCF FTP。
答案 1 :(得分:0)
我不知道您是否考虑过Xamarin,但您正在寻找的实施可以在System.Net.FtpWebRequest处找到。