Dim iFileSize As Int32
'根据选择来设定分割文件的大小
iFileSize = Int32.Parse(ComboBox1.Text) * 1024
'以文件的全路径对应的字符串和文件打开模式来初始化FileStream文件流实例
Dim SplitFileStream As System.IO.FileStream
SplitFileStream = New System.IO.FileStream(TextBox1.Text, IO.FileMode.Open)
'以FileStream文件流来初始化BinaryReader文件阅读器
Dim SplitFileReader As New System.IO.BinaryReader(SplitFileStream)
'每次分割读取的最大数据
Dim TempBytes As Byte()
'小文件总数
Dim iFileCount As Int32
iFileCount = Int(SplitFileStream.Length / iFileSize)
ProgressBar1.Maximum = iFileCount
If SplitFileStream.Length Mod iFileSize <> 0 Then
iFileCount = iFileCount + 1
End If
Dim TempExtra As String()
TempExtra = TextBox1.Text.Split(New Char() {"."})
'循环将大文件分割成小文件
Dim i As Integer
For i = 1 To iFileCount
'小文件名
Dim a As Char = "0"
Dim sTempFileName As String = TextBox2.Text + "\" + i.ToString.PadLeft(4, a) + "." + TempExtra(TempExtra.Length - 1)
'根据文件名称和文件打开模式来初始化FileStream文件流
Dim TempStream As New System.IO.FileStream(sTempFileName, IO.FileMode.OpenOrCreate)
'以FileStream实例来创建,初始化BinaryWriter书写器实例
Dim TempWrite As New System.IO.BinaryWriter(TempStream)
'从大文件中读取数据
TempBytes = SplitFileReader.ReadBytes(iFileSize)
'把此数据写到小文件中
TempWrite.Write(TempBytes)
'关闭书写器,形成小文件
TempWrite.Close()
'关闭文件流
TempStream.Close()
ProgressBar1.Value = i - 1
Next
'关闭大文件阅读器
SplitFileReader.Close()
MessageBox.Show("分割成功!")
ProgressBar1.Value = 0