static void ReadData(string sourcePath, string targetDirectory) { FileStream fs = new FileStream(sourcePath, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.Default); sr.BaseStream.Seek(0, SeekOrigin.Begin); string line = string.Empty; int seg = 0; while (line != null) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10000; i++) { line = sr.ReadLine(); if (line.Trim()=="GO") break; else sb.AppendLine(line); } seg++; string targetPath = targetDirectory + "\" + Path.GetFileNameWithoutExtension(sourcePath) + "_" + seg.ToString() + Path.GetExtension(sourcePath); sb.AppendLine("GO"); sb.AppendLine(); WriteData(sb.ToString(), targetPath); } sr.Close(); fs.Close(); } static void WriteData(string str, string path) { FileStream aFile = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite); StreamWriter sw = new StreamWriter(aFile); sw.Write(str); sw.Close(); aFile.Close(); }