关于文件分割器的算法?

hufox 2005-12-06 11:41:12
我想用vb.net做一个文件分割器的程序,我参考了很多网络上的资料,但还是不成功!哪位有做过的请给我一个算法吧!如果有vb.net的原码也可以啊!我想如果可以把这个理解,就可以把文件操作这块理解了!谢了~~~
...全文
189 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hufox 2005-12-07
  • 打赏
  • 举报
回复
呵,可以了,你也有做这个吗?上一次我做的就是把一个文件名理解错了,所以一直没有成功啊!多谢指点!接下去做文件的合并了~~
AntingZ 2005-12-07
  • 打赏
  • 举报
回复
下面是我刚从网上search的一段代码,没测试过,你先试试看:

Tony_lau111082(刘寓)

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

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧