c#FTP上传断点续传的问题

class Program
{
    static bool uploadFile(string file_name, long offset = 0, string ftp_method = WebRequestMethods.Ftp.UploadFile)
    {
        try
        {
            FileInfo file_info = new FileInfo(file_name);
            if (file_info.Exists == false)
            {
                return false;
            }


            FtpWebRequest upload_request = (FtpWebRequest)FtpWebRequest.Create("url" + file_info.Name);
            upload_request.Credentials = new NetworkCredential("a", "a");
            upload_request.ContentLength = file_info.Length;
            upload_request.Timeout = 60000;
            upload_request.Method = ftp_method;
            upload_request.ContentOffset = offset;

            Stream request_stream = upload_request.GetRequestStream();
            FileStream file_stream = file_info.OpenRead();

            offset = copyDataToDest(Path.GetFileName(file_name), file_stream, request_stream, offset);

            if (offset != 0)
            {
                uploadFile(file_name, offset, WebRequestMethods.Ftp.AppendFile);
            }
        }
        catch (Exception ex)
        {
            return false;
        }

        return true;
    }

    static long copyDataToDest(string file_display_name, Stream source, Stream dest, long offset)
    {
        try
        {
            byte[] buffer = new byte[1024];
            source.Position = offset;
            int current_read_count = 0;
            while (true)
            {
                current_read_count = source.Read(buffer, 0, 1024);
                if (current_read_count == 0)
                {
                    offset = 0;
                    break;
                }
                dest.Write(buffer, 0, current_read_count);
                dest.Flush();
                offset += current_read_count;
                Console.WriteLine(offset / 1024 / 1024 + "/" + source.Length / 1024 / 1024 + "MB");
            }
        }
        catch
        {

        }
        try
        {
            source.Close();
            dest.Close();
        }
        catch
        {

        }
        return offset;
    }

    static void Main(string[] args)
    {
        uploadFile("D:\\1.data");
    }


}

以上是我的上传代码,如果产生断点续传,续传的文件就会出错,请问哪里写错了?

http://blog.csdn.net/lbuskeep/article/details/6192223