[UPDATED]
try this.
static void FileSplit(string ipath)
{
using (FileStream fsi = File.OpenRead(ipath))
{
bool completed = false;
int i = 0;
byte[] buff = new byte[1024];
while (!completed)
{
string opath = string.Format("{0}_{1}", ipath, i++);
int partsize = 0;
using (FileStream fso = File.Create(opath))
{
while (partsize < 300000)
{
int n = fsi.Read(buff, 0, 1024);
if (n > 0)
{
partsize += n;
fso.Write(buff, 0, n);
}
completed = (n < 1024 || i > 10);
if (completed)
break;
}
}
}
}
}