我是新的c#。我想知道我应该在这段代码中改变什么来连接到我的ftp服务器。有人可以帮帮我吗?我无法理解string fileName
,Uri serverUri
,long offset
,所以请帮助我。
ftphost address= localhost
username = test
password = test
filename = test.zip
public static bool RestartDownloadFromServer(string fileName, Uri serverUri, long offset)
{
// The serverUri parameter should use the ftp:// scheme.
// It identifies the server file that is to be downloaded
// Example: ftp://contoso.com/someFile.txt.
// The fileName parameter identifies the local file.
//The serverUri parameter identifies the remote file.
// The offset parameter specifies where in the server file to start reading data.
if (serverUri.Scheme != Uri.UriSchemeFtp)
{
return false;
}
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.ContentOffset = offset;
FtpWebResponse response = null;
try
{
response = (FtpWebResponse)request.GetResponse();
}
catch (WebException e)
{
Console.WriteLine(e.Status);
Console.WriteLine(e.Message);
return false;
}
// Get the data stream from the response.
Stream newFile = response.GetResponseStream();
// Use a StreamReader to simplify reading the response data.
StreamReader reader = new StreamReader(newFile);
string newFileData = reader.ReadToEnd();
// Append the response data to the local file
// using a StreamWriter.
StreamWriter writer = File.AppendText(fileName);
writer.Write(newFileData);
// Display the status description.
// Cleanup.
writer.Close();
reader.Close();
response.Close();
Console.WriteLine("Download restart - status: {0}", response.StatusDescription);
return true;
}
感谢Addvance。
答案 0 :(得分:3)
方法开头的评论绰绰有余。
调用方法来解决问题:
RestartDownloadFromServer("ftp://localhost/test.zip", "c:\test.zip", 0);
您拥有的示例无法处理用户名/密码。为此,您需要创建NetworkCredential并将其添加到WebRequest。
答案 1 :(得分:2)
在你的代码示例中,这些单词还需要你还需要什么。
// serverUri参数应使用ftp://方案。 //它标识要下载的服务器文件 //示例:ftp://contoso.com/someFile.txt。 // fileName参数标识本地文件。 // serverUri参数标识远程文件。 // offset参数指定服务器文件中开始读取数据的位置。
答案 2 :(得分:1)