ورود

View Full Version : سوال: بدست آوردن حجم دانلود...



MR. Garcia
جمعه 10 خرداد 1392, 04:44 صبح
درود، می‌خواستم ببینم کدی برای Visual Basic 6 هست که بتونه حجمِ یه لینک رو بدست بیاره؟
یعنی من بهش لینک مستقیم دانلود رو بدم و بهم حجم فایل رو بگه... یچیز تو مایه‌های Internet Download Manager که پیش از اینکه فایل رو دانلود کنه حجمش رو نشون میده...

محسن واژدی
جمعه 10 خرداد 1392, 08:40 صبح
سلام علیکم
در ساده ترین صورت میتوانیم از Inet استفاده کنیم (در اینصورت همیشه بایستی کنترل Inet همراه برنامه داشته باشیم)، در اینصورت کد ما میشود:
Private Sub Command1_Click()
Dim Inet1 As Object
Set Inet1 = CreateObject("InetCtls.Inet")
With Inet1
.Execute "http://barnamenevis.org/images/misc/vbulletin4_logo_forexpand.png", "GET"
Do While .StillExecuting
DoEvents
Loop
MsgBox "Download size: " & Format(CLng(.GetHeader("Content-Length")) / 1024, "0.00") & " KB", vbInformation
End With
End Sub

یا از XMLHttp که پیش فرض در ویندوز وجود دارد:
Private Sub Command2_Click()
Dim xmlhttp
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
With xmlhttp
.open "GET", "http://barnamenevis.org/images/misc/vbulletin4_logo_forexpand.png", True
.send
.waitForResponse 20

MsgBox "Download size: " & Format(CLng(.getResponseHeader("Content-Length")) / 1024, "0.00") & " KB", vbInformation
End With
End Sub

موفق باشید

MR. Garcia
جمعه 10 خرداد 1392, 11:06 صبح
با سپاسِ فراوان...
حالا اگه بخوام بجای کیلوبایت، به مگابایت بنویسه، فقط باید اون 1024 رو بکنم 1048576 یا ویرایش دیگه‌ای هم نیازه؟

محسن واژدی
جمعه 10 خرداد 1392, 15:11 عصر
تابع زیر را در ماژول کد قرار بدین:
Public Function FormatFileSpc(ByVal Size#) As String
On Error Resume Next

If Size >= 1000000 Then

FormatFileSpc = Format$((Size / (1024 ^ 2)), "#,##0.00") & " MB"
ElseIf Size >= 1000 Then

FormatFileSpc = Format$((Size / 1024), "#,##0") & " KB"
Else

FormatFileSpc = Size & " Bytes"
End If

End Function

به عنوان مثال:
Private Sub Command2_Click()
Dim xmlhttp
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
With xmlhttp
.open "GET", "http://barnamenevis.org/images/misc/vbulletin4_logo_forexpand.png", True
.send
.waitForResponse 20
MsgBox "Download size: " & FormatFileSpc(.getResponseHeader("Content-Length")), vbInformation
End With
End Sub

موفق باشید

alipoor2009
دوشنبه 13 خرداد 1392, 01:00 صبح
سلام- چرا اندازه فایل های بزرگ را دیر تر می دهد - می تونه سرعتش مثل IDM باشه ؟