分割一个TXT 按它的大小来分割 每10K一个文件 例如文件5M 则分割成512个文件 这样如何分割呢?
解决方案 »
- 如何用C#编的界面控制其他软件
- .NET 中的程序集版本和文件版本有什么区别?各有什么用处?
- 怎么给DataGridView调用的存储过程添加参数
- Designer界面和后台代码失去关联了怎么办?
- treeview与contextmenu分配右键问题
- 关于端口的问题
- 在webform程序中有没有标签(tab)那种控件?
- 为什么我用this.hide() 会引发closeing事件?
- System.IO.FileLoadException: Could not load file or assembly ...........................求助
- 有符号整型和无符号整型怎么转换
- 新手求指导c#向SQL插入数据
- c# WinForm 注册时,验证用户是否存在
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);
}
}
}
txtSize.Text 分割块的大小 以K位单位。
{
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);
}
}
}
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