PDA

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



Golsha
سه شنبه 21 شهریور 1391, 11:34 صبح
سلام دوستان عزیز تابعی نوشتم که با استفاده از اون میشه حجم یک پوشه رو بدست آورد.امیدوارم بدردتون بخوره:


این تابع آدرس یک پوشه ای رو میگیره و اندازه اون پوشه رو به صورت یک عدد بر میگردونه :



Function FolderSize(ByVal Path AsString) AsDouble


حالا باید آرایه ای رو تعریف کنیم که فایل های اون پوشه رو بگیره :



Dim Files() AsString = System.IO.Directory.GetFiles(Path)


بعد از اون باید با استفاده از یه حلقه تعداد فایل های اون پوشه رو بشماریم و اندازه ی فایل هارو باهم جمع کنیم :



For I AsUInt64= 0 To Files.GetUpperBound(0)
Dim File AsNew System.IO.FileInfo(Files(I))
FolderSize += File.Length
Next I


حالا میریم سراغ فولدرهایی که داخل پوشه مورد نظرمون هست :
آرایه ای رو تعریف میکنیم که فولدرهای داخل اون پوشه رو بگیره :



Dim Dir() = System.IO.Directory.GetDirectories(Path)


این قسمت باید با یه حلقه فولدرهای اون پوشه رو بشماریم و با استفاده از یه تابع به روش بازگشتی همه فایل های توی اون فولدرها رو بشماریم و اندازه هاشون رو جمع بزنیم :



For I AsUInt64 = 0 To Dir.GetUpperBound(0)
Dim Directory AsNew System.IO.DirectoryInfo(Dir(I))
FolderSize += FolderSize(Directory.FullName)
Next I


به خط سوم کد بالا بیشتر توجه کنید!


تابع باکد End Function بسته میشه.


در آخر با استفاده از روش زیر میتونید از تابع در برنامه تون استفاده کنید :



MsgBox("Size Of C:\Program Files = " & FolderSize("C:\Program Files") & " Bytes")


البته میتونید تو خط اول تابع تون از کد زیر هم استفاده کنید که اگه تابع جایی به مشکل خورد برنامه تون خطا نده :



On Error Resume Next


امیدوارم به دردتون بخوره.التماس 2آ