If the number of lines in the original file is a relatively small number, you can read them all into an array in a line of code. From there, producing the 10 output files is a simple operation. Here is one such method.
Dim path As String = "C:\Temp\test\input.txt"
Dim outputPath As String = "C:\Temp\test\output{0}.txt"
Dim lines As String() = File.ReadAllLines(path)
Dim files As Integer = 10
Dim linesPerFile As Integer = lines.Length \ 10
Dim currentLine As Integer = 0
For i As Integer = 0 To files - 1
Dim iterations As Integer = linesPerFile
If i = files - 1 Then
iterations = lines.Length - currentLine
End If
Using writer As New StreamWriter(String.Format(outputPath, i))
For j As Integer = 0 To iterations - 1
writer.WriteLine(lines(currentLine))
currentLine += 1
Next
End Using
Next
...
string path = @"C:\Temp\test\input.txt";
string outputPath = @"C:\Temp\test\output{0}.txt";
string[] lines = File.ReadAllLines(path);
int files = 10;
int linesPerFile = lines.Length / 10;
int currentLine = 0;
for (int i = 0; i < files; ++i)
{
int iterations = linesPerFile;
if (i == files - 1)
{
iterations = lines.Length - currentLine;
}
using (StreamWriter writer = new StreamWriter(string.Format(outputPath, i)))
{
for (int j = 0; j < iterations; j++)
{
writer.WriteLine(lines[currentLine++]);
}
}
}