آخر تحديث لاجراء split لكنه يجعل حجم آخر ملف اصغر من الحقيقي:
PHP كود :
Private Sub split(ByVal fpath As String)
If IO.File.Exists(fpath) = False Then Exit Sub
Dim thefile As New IO.FileInfo(fpath)
Dim fn As String = thefile.Name
Dim fs As New FileStream(thefile.FullName, FileMode.Open)
Dim br As New BinaryReader(fs)
Dim i As Long = 0
Dim n As Long = 0
Dim rmain As Long = (br.BaseStream.Length \ filemax)
Dim mo As Long = br.BaseStream.Length Mod filemax
Dim agroups As Long = 0
If mo > 0 Then
agroups = (rmain + 1)
ElseIf mo = 0 Then
agroups = rmain
End If
nxt:
Dim newfile As String = folder & fn & "_File_" & n.ToString("000000") & "_byte"
p1.Invoke(Sub() p1.Maximum = filemax + (filemax / 80)) 'ماقدرت اتصرف معها زودت القيمة جدعنة بس
For i = n To br.BaseStream.Length - 1
n = i
Dim fw As New FileStream(newfile, FileMode.Append)
Dim bw As New BinaryWriter(fw)
bw.Write(br.ReadBytes(i))
' lbl.Invoke(Sub() lbl.Text = foldersize(folder))
p1.Invoke(Sub() p1.Value = fl(newfile))
fw.Close()
fw.Dispose()
fw = Nothing
bw.Close()
bw.Dispose()
bw = Nothing
If fl(newfile) >= filemax Then
' n += 1
GoTo nxt
End If
' If i >= br.BaseStream.Length - 1 Then GoTo g
If folderfiles(folder) = agroups Then
GoTo g
End If
Next ' الغريب ان الاكواد بعد هذا السطر لا يصل اليه البرنامج
g:
newfile = Nothing
fs.Close()
fs.Dispose()
br.Close()
br.Dispose()
lbl.Invoke(Sub() lbl.Text = "تم")
btnstart.Invoke(Sub() btnstart.Enabled = True)
End Sub
مثل ماقلت الخطا او الحل قدام عيني لكن مش شايفه
اللي كنت محتاجه هذا:
PHP كود :
br.BaseStream.Position = br.BaseStream.Length
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير

