PDA

View Full Version : بدست آوردن حجم یک پوشه



xrezax
شنبه 12 اردیبهشت 1388, 16:29 عصر
دوستان من می خوام یه برنامه باشه که یک پوشه بسازه و توش فایل txt بندازه و وقتی حجمش مثلاً شد 1 مگ یک پوشه دیگه باز کنه و باقی رو توی پوشه بعدی بریزی . همینجو تا آخر.

کلاَ چطور میشه حجم یک فولدر را بدست آورد؟

ممنون میشم با پروژه های وی بی توضیح بدین :بوس:

xxxxx_xxxxx
یک شنبه 13 اردیبهشت 1388, 01:33 صبح
با تابع CreateFile و FileCopy از فايل هاتون كپي بگيرين. براي بدست آوردن هندل فايل ها.
بعد با تابع GetFileSize سايز تك تك فايل ها رو بدست بياريد و جمع بزنيد. و در آخر كپي هايي كه گرفتيد رو پاك كنيد.
نميدونم روش ديگه اي هست يا نه...:متفکر:

Mbt925
یک شنبه 13 اردیبهشت 1388, 16:39 عصر
راه پايه اي براي اين كار اينه كه حجم تك تك فايل هايي كه توي پوشه مربوطه قرار دارن رو بدست بيارين و باهم جمع كنيد.
البته اين كار بايد بصورت بازگشتي پياده سازي بشه،‌چون ممكنه توي پوشه مربوطه،‌پوشه ي ديگه اي هم وجود داشته باشه.

اين روش در اينجا پياده سازي شده:

http://www.xtremevbtalk.com/archive/index.php/t-104904.htmlولي يه راه خيلي ساده براي اين منظور استفاده از كتابخانه Microsoft Scripting Runtime‌ هست.
از بخش رفرنس ها،‌تيك اين گزينه رو بزنيد و از كد زير استفاده كنيد:





Dim a As New FileSystemObject
Dim objfolder As Folder

Set objfolder = a.GetFolder("C:\Documents and Settings\Administrator\Desktop\ProducerConsumerQue ue")

MsgBox objfolder.Size

xrezax
پنج شنبه 17 اردیبهشت 1388, 09:45 صبح
دوستان عزیز میشه با پروژه های وی بی برام توضیح بدین . ممنون میشم

masoud.ramezani
پنج شنبه 17 اردیبهشت 1388, 10:57 صبح
سلام

یه foreach روی تمام فایلهای درون folder بزن و دونه دونه حجم اونا رو جمع کن.

Mbt925
پنج شنبه 17 اردیبهشت 1388, 16:19 عصر
نمونه زیر رو دانلود کنید:


http://barnamenevis.org/forum/showpost.php?p=717957&postcount=330

Babak.Hassanpour
پنج شنبه 17 اردیبهشت 1388, 21:31 عصر
Private Sub Form_Load()
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("c:\")
SumFiles = f.Size
MsgBox Round(SumFiles / 1024, 3) & " KB" & vbCrLf & Round(SumFiles / (1024 ^ 2), 3) & " MB" & vbCrLf & Round(SumFiles / (1024 ^ 3), 3) & " GB"
End Sub


این روش، از روش های مبتنی بر جستجوی برگشتی(recursive search) و جمع زدن مجموع سایز فایل های پوشه و زیر پوشه ها ، سریع تره.می تونید امتحان کنید .

xrezax
جمعه 18 اردیبهشت 1388, 09:57 صبح
لطفاً با پروژه های وی بی انجام بدین ممنون میشم.

xrezax
جمعه 18 اردیبهشت 1388, 11:49 صبح
فکر نکنم کسی سوالمو فهمید !!!!

دوستان من می خوام یه برنامه باشه که یک پوشه بسازه و توش فایل txt بندازه و وقتی حجمش مثلاً شد 1 مگ یک پوشه دیگه باز کنه و باقی رو توی پوشه بعدی بریزی . همینجو تا آخر.

کلاَ چطور میشه حجم یک فولدر را بدست آورد؟

ممنون میشم با پروژه های وی بی توضیح بدین :بوس: