C# 用FileStream读取写入大文件

我想做个上传文件的功能,但是大文件会报错,有什么办法:比如分段读取 写入,,,,,,,
代码应该怎么样写?

http://wenku.baidu.com/link?url=JWl0eaFhVwzWRqDspe1bJByMm0lOESldyE4lNWo3zwvAGtxQk9Iz9k4DcVSNDNI_RJZqgcRnm6E913LoiYJkJQDgDbDkxvJ-E5bIqOkXSjC

http://blog.csdn.net/xs_zgsc/article/details/8468883

用内存映射类MemoryMappedFile
http://www.cnblogs.com/briny/archive/2012/11/25/2787188.html

   private void button1_Click(object sender, EventArgs e)
    {
        const long ChunkSize = 102400;//100K 每次读取文件,只读取100K 
        using (OpenFileDialog fbd = new OpenFileDialog())
        {
            fbd.Filter = "(*.*)|*.txt";
            if (fbd.ShowDialog(this) == DialogResult.OK)
            {
                byte[] bytcontent = new byte[ChunkSize];
                FileStream fs = new FileStream(fbd.FileName,FileMode.Open);
                long dataLengthToRead = fs.Length;//获取下载的文件总大小

               while (dataLengthToRead > 0)
               {     
                    int lengthRead = fs.Read(bytcontent, 0, Convert.ToInt32(ChunkSize));//读取的大小
                    Thread t = new Thread(new ParameterizedThreadStart(Readfile));
                    t.Start(System.Text.Encoding.Default.GetString(bytcontent));
                    dataLengthToRead -= lengthRead;
                }
            }
        }}

public delegate void Callback(string str);

    private void Readfile(object content)
    {
        if (richTextBox1.InvokeRequired)
        {
            Callback call = new Callback(Readfile);
            this.BeginInvoke(call, new object[] { content });
        }
        else
        {
            this.richTextBox1.AppendText(content.ToString());
            this.richTextBox1.AppendText("\r\n");
        }
    }

            4G以下的文件都可以