View Full Version : سوال: بدست آوردن حجم اشغال شده یک درایو
shahabbasic
جمعه 28 مرداد 1390, 19:37 عصر
حجم اشغال شده یک درایو رو چطور میشود بدست آورد؟
IamOverlord
جمعه 28 مرداد 1390, 19:52 عصر
سلام!
1. یه TextBox روی Form بذار.
2. یه CommandButton هم بذار.
3. بدون تغییر نام اون دو تا Control ای که گذاشتی این کد رو بنویس :
Private Declare Function SHGetDiskFreeSpace Lib "shell32" Alias "SHGetDiskFreeSpaceA" (ByVal pszVolume As String, pqwFreeCaller As Currency, pqwTot As Currency, pqwFree As Currency) As Long
Private Sub Command1_Click()
Dim FreeCaller As Currency, Tot As Currency, Free As Currency
SHGetDiskFreeSpace Text1.Text, FreeCaller, Tot, Free
MsgBox "Free space to caller: " + Format$(FreeCaller * 10000, "###,###,###,##0") + vbCrLf + _
"Total space: " + Format$(Tot * 10000, "###,###,###,##0") + vbCrLf + _
"Free space: " + Format$(Free * 10000, "###,###,###,##0")
End Sub
Private Sub Form_Load()
Text1.Text = "C:\"
End Sub
setroyd
شنبه 29 مرداد 1390, 13:21 عصر
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long
Private Sub Form_Load()
Dim BytesFreeToCalller As Currency, TotalBytes As Currency
Dim TotalFreeBytes As Currency
Dim RootPathName As String
Me.AutoRedraw = True
RootPathName = "c:\"
GetDiskFreeSpaceEx RootPathName, BytesFreeToCalller, TotalBytes, TotalFreeBytes
Me.Print " Total Number Of Bytes:", Format$(TotalBytes * 10000, "###,###,###,##0") & " bytes"
Me.Print " Total Free Bytes:", Format$(TotalFreeBytes * 10000, "###,###,###,##0") & " bytes"
Me.Print " Free Bytes Available:", Format$(BytesFreeToCalller * 10000, "###,###,###,##0") & " bytes"
Me.Print " Total Space Used :", Format$((TotalBytes - TotalFreeBytes) * 10000, "###,###,###,##0") & " bytes"
End Sub
محسن واژدی
شنبه 29 مرداد 1390, 18:21 عصر
سلام علیکم
یا اجازه جنابر IamOverlord کد فضای اشغال شده را نیز به کدهای پست شماره 2 اضافه کردم:
Private Declare Function SHGetDiskFreeSpace Lib "shell32" Alias "SHGetDiskFreeSpaceA" (ByVal pszVolume As String, pqwFreeCaller As Currency, pqwTot As Currency, pqwFree As Currency) As Long
Private Sub Command1_Click()
Dim FreeCaller As Currency, Tot As Currency, Free As Currency, used@
SHGetDiskFreeSpace Text1.Text, FreeCaller, Tot, Free
Tot = Tot * 10000
Free = Free * 10000
used@ = Tot - Free
MsgBox "Free space to caller: " & Format$(FreeCaller * 10000, "###,###,###,##0") & vbCrLf & _
"Total space: " & Format$(Tot, "###,###,###,##0") & vbCrLf & _
"Free space: " & Format$(Free, "###,###,###,##0") & vbCrLf & _
"Used space: " & Format$(used@, "###,###,###,##0")
End Sub
Private Sub Form_Load()
Text1.Text = "C:\"
End Sub
موفق باشید
setroyd
شنبه 29 مرداد 1390, 22:15 عصر
جناب ramzdar یا IamOverlord (http://barnamenevis.org/member.php?72921-IamOverlord)
setroyd
شنبه 29 مرداد 1390, 22:16 عصر
جناب ramzdar یا IamOverlord (http://barnamenevis.org/member.php?72921-IamOverlord) !!! :متفکر:
IamOverlord
شنبه 29 مرداد 1390, 22:33 عصر
جناب ramzdar یا IamOverlord (http://barnamenevis.org/member.php?72921-IamOverlord) !!! :متفکر:
منظورتون چیه؟!
محسن واژدی
شنبه 29 مرداد 1390, 22:43 عصر
جناب ramzdar یا IamOverlord (http://barnamenevis.org/member.php?72921-IamOverlord) !!! :متفکر:
اشتباهی شد، حالا چرا دوتا پست دادین، آنقدر هم اشتباه بزرگی نبودا ;)
setroyd
شنبه 29 مرداد 1390, 22:45 عصر
سلام علیکم
یا اجازه جنابر IamOverlord کد فضای اشغال شده را نیز به کدهای پست شماره 2 اضافه کردم:
Private Declare Function SHGetDiskFreeSpace Lib "shell32" Alias "SHGetDiskFreeSpaceA" (ByVal pszVolume As String, pqwFreeCaller As Currency, pqwTot As Currency, pqwFree As Currency) As Long
Private Sub Command1_Click()
Dim FreeCaller As Currency, Tot As Currency, Free As Currency, used@
SHGetDiskFreeSpace Text1.Text, FreeCaller, Tot, Free
Tot = Tot * 10000
Free = Free * 10000
used@ = Tot - Free
MsgBox "Free space to caller: " & Format$(FreeCaller * 10000, "###,###,###,##0") & vbCrLf & _
"Total space: " & Format$(Tot, "###,###,###,##0") & vbCrLf & _
"Free space: " & Format$(Free, "###,###,###,##0") & vbCrLf & _
"Used space: " & Format$(used@, "###,###,###,##0")
End Sub
Private Sub Form_Load()
Text1.Text = "C:\"
End Sub
موفق باشید
پرسیدم چرا اقای ramzdar !
setroyd
شنبه 29 مرداد 1390, 22:53 عصر
اقا یه bug بود شرمنده تو صفحه ی من نوشته ramzdar نگاه کنید ضمیمه کردم اینجا که پاسخ به نقل قول که زدم نوشته : یا اجازه جنابر iam overlord جالب نیست عکس رو ضمیمه کردم زیرش خط قرمز کشیدم چرا !!!
IamOverlord
شنبه 29 مرداد 1390, 23:02 عصر
خیلی عجیبه!
محسن واژدی
شنبه 29 مرداد 1390, 23:09 عصر
اقا یه bug بود شرمنده تو صفحه ی من نوشته ramzdar نگاه کنید ضمیمه کردم اینجا که پاسخ به نقل قول که زدم نوشته : یا اجازه جنابر iam overlord جالب نیست عکس رو ضمیمه کردم زیرش خط قرمز کشیدم چرا !!!
حاجیییییی، اشتباه لپی بود دیگه گیرندیییییییییین :لبخندساده::لبخندساده:
setroyd
شنبه 29 مرداد 1390, 23:17 عصر
ایول من فک کردم رفتم تو bug :چشمک:
محسن واژدی
شنبه 29 مرداد 1390, 23:17 عصر
خیلی عجیبه!
عجب خطایی مرتکب شدم، :) ، پست ویرایش شد، البته ببخشید یه یکی دوساعتی با نام جناب ramzdar نمایش داده شد انشاء الله بتوانم جبران کنم این خطا را، از جناب ramzdar هم معذرت میخواهم
الهم صل علی محمّد و آل محمّد
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.