分割一个TXT   按它的大小来分割   每10K一个文件 例如文件5M 则分割成512个文件  这样如何分割呢?

解决方案 »

  1.   


            private void cmdSave_Click(object sender, EventArgs e)
            {
                SaveFileDialog s = new SaveFileDialog();
                s.Filter = "文本文件(*.txt)|*.txt";
                s.ValidateNames = true;
                s.ShowDialog();
                string f = s.FileName;
                if (f != "")
                {
                    if (checkBox1.Checked)   // 分割文件
                    {
                        f=f.Substring(0,f.Length-4);
                        int id = 1;
                        byte[] buff = Encoding.Default.GetBytes(txtContent.Text);
                        int b = 0, l;
                        int c = 1024 * int.Parse(txtSize.Text);
                        while (b < buff.Length)
                        {                        if (b + c < buff.Length)
                            {
                                string t1 = Encoding.Default.GetString(buff, b,c);
                                string t2 = Encoding.Default.GetString(buff, b, c + 1);
                                if (t2.Length == t1.Length)
                                {
                                    l = c - 1;
                                }
                                else
                                {
                                    l = c;
                                }
                            }
                            else
                            {
                                l = buff.Length - b;
                            }
                            string fn = f + string.Format("{0:d5}", id) + ".txt";
                            StreamWriter sw = new StreamWriter(fn, false, Encoding.Default);
                            sw.Write(Encoding.Default.GetString(buff, b, l));
                            sw.Close();
                            b += l;
                            ++id;
                        }
                    }
                    else
                    {
                        txtContent.SaveFile(f, RichTextBoxStreamType.PlainText);
                    }
                }
            }
      

  2.   

    txtSize.Text 文件大小 以K位单位。
      

  3.   

    刚才说错啦!
    txtSize.Text 分割块的大小 以K位单位。
      

  4.   

    txtContent  你这个是干嘛的啊?
      

  5.   

    是文件的内容, RichTextBox,上面是我编写的程序中的一个部分,供参考!
      

  6.   

      private void cmdSave_Click(object sender, EventArgs e)
            {
                SaveFileDialog s = new SaveFileDialog();
                s.Filter = "文本文件(*.txt)|*.txt";
                s.ValidateNames = true;
                s.ShowDialog();
                string f = s.FileName;
                if (f != "")
                {
                    if (checkBox1.Checked)   // 分割文件
                    {
                        f=f.Substring(0,f.Length-4);
                        int id = 1;
                        byte[] buff = Encoding.Default.GetBytes(txtContent.Text);
                        int b = 0, l;
                        int c = 1024 * int.Parse(txtSize.Text);
                        while (b < buff.Length)
                        {                        if (b + c < buff.Length)
                            {
                                string t1 = Encoding.Default.GetString(buff, b,c);
                                string t2 = Encoding.Default.GetString(buff, b, c + 1);
                                if (t2.Length == t1.Length)
                                {
                                    l = c - 1;
                                }
                                else
                                {
                                    l = c;
                                }
                            }
                            else
                            {
                                l = buff.Length - b;
                            }
                            string fn = f + string.Format("{0:d5}", id) + ".txt";
                            StreamWriter sw = new StreamWriter(fn, false, Encoding.Default);
                            sw.Write(Encoding.Default.GetString(buff, b, l));
                            sw.Close();
                            b += l;
                            ++id;
                        }
                    }
                    else
                    {
                        txtContent.SaveFile(f, RichTextBoxStreamType.PlainText);
                    }
                }
            }
      

  7.   

    FileStream   vFileStream   =   new   FileStream(vFileName,   FileMode.Open,   FileAccess.Read); 
    vBeginPostion   =   0; 
    vEndPostion   =   vFileStream.Length; 
    while   (true) 

            vCurrPostion   = vBeginPostion   +   (vEndPostion   -   vBeginPostion)   
            vFileStream.Seek(vCurrPostion,   SeekOrigin.Begin); 
          vReadLength   =   vFileStream.Read(vBuffer,   0,   vBuffer.Length);
     }
    http://topic.csdn.net/u/20081231/10/3bd7feb4-ba6a-4739-a795-db3a940425ed.html