如何使用此Ftp代码

时间:2011-06-14 03:19:41

标签: c# ftp

我是新的c#。我想知道我应该在这段代码中改变什么来连接到我的ftp服务器。有人可以帮帮我吗?我无法理解string fileNameUri serverUrilong 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。

3 个答案:

答案 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)

听起来你刚刚开始C#

查看以下链接。你需要学会走路才能跑步!

http://msdn.microsoft.com/en-us/beginner/bb308730.aspx

http://www.csharp-station.com/Tutorial.aspx