منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كود] معرفه حجم كل المجلدات في القرص C بشكل واضح - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [كود] معرفه حجم كل المجلدات في القرص C بشكل واضح (/showthread.php?tid=46866)



معرفه حجم كل المجلدات في القرص C بشكل واضح - محمد مسافر - 07-09-23

هل بالامكان معرفه او كود لطريقه التي يمكن من خلالها معرفه الحجم  للمجلدات داخل للقرص C  حتى اعرف تلك الملفات التى تخزن بيانات كثيره ، اتمنى الافاده وامكانيه ظهور المساحه للملفات كمافي الصوره التوضيحيه او كنسبه او اي شي اخر يميز حجم تلك الملفات .

 


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - Taha Okla - 08-09-23

أذكر فيه برنامج اسمه
WinDir Stat
أبحث عنه بشطارتك 
نزله عندك وشغله ، واختر أي سواقة (دبل كلك)
وانتظر حتى ينهي عمله .. وشوف النتيجة ..

راح تلاقي أكثر من اللي طلبته ..


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - محمد مسافر - 08-09-23

سلام عليكم
صحيح في عده برامج وقد جربت البعض منها ولكن هل ممكن اظهار مساحه المجلدات بشكل برمجي وبكود معين ام الموضوع غير ممكن شكرا .


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - Taha Okla - 08-09-23

كل شي ممكن

ولكن في مثل هذه البرامج
من الأفضل أن تكون مصممة بلغة السي + + 

لما تمتاز به من سرعة في تنفيذ المطلوب مقارنة بغيرها من اللغات
مثلاً لو تم تصميم برنامجين لنفس هذا الغرض والاخر منهما بـ لغة بايثون سيكون البرنامج المصمم بـ السي ++ ع الأقل أسرع 20 مرة مقارنة به

فليس محموداً صناعة برنامج يقرأ كل بيانات الجهاز بأي لغة برمجية غير لغة السي أو السي++

وعدا عن لغة سي ++ ذلك سيكون البرنامج بطيئ لدرجة لا توصف..

الان شركة جوجل تطور لغة Carbon وتروج لها على أنها لغة مختصرة ومطورة عن سي++ 
فإن صح ذلك ستكون هي المستقبل بين كل اللغات الحالية
وإلا فهي كغيرها من اللغات التي خرجت وانقرضت..


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - justforit - 09-09-23

PHP كود :
Imports System.IO
Public Class Form1
    Function GetDirectorySize
(ByVal DirPath As String) As Long
        Dim DirSize 
As Long
        Dim Dir 
As DirectoryInfo = New DirectoryInfo(DirPath)
 
       Dim ChildFile As FileInfo
        For Each ChildFile In Dir
.GetFiles()
 
           DirSize += ChildFile.Length
        Next
        Dim SubDir 
As DirectoryInfo
        For Each SubDir In Dir
.GetDirectories()
 
           DirSize += GetDirectorySize(SubDir.FullName)
 
       Next
        Return DirSize
    End 
Function
 
   Private Sub gmy(dpath As String)
 
       Dim s As Long GetDirectorySize(dpath)
 
       ListBox1.Invoke(Sub() ListBox1.Items.Add(dpath " " " byte"))
 
   End Sub
    Private Sub btnGetFolderssize_Click
(sender As ObjectAs EventArgsHandles btnGetFolderssize.Click
        Dim fbd 
As New FolderBrowserDialog
        If fbd
.ShowDialog DialogResult.OK Then
            ListBox1
.Items.Clear()
 
           Dim th As New Threading.Thread(AddressOf gmy)
 
           If th.IsAlive False Then
                th
.Start(fbd.SelectedPath)
 
           End If
 
       End If
 
   End Sub
End 
Class 
عدل على الكود ليناسب المطلوب.


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - أبو خالد الشكري - 09-09-23

رائع
ولكن أظن أنه يكون أفضل لو تظهر النتيجة بالجيجا بايت أو بالميجابايت بدلا من البايت !


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - Asem2 - 10-09-23

(09-09-23, 11:05 PM)justforit كتب :
PHP كود :
Imports System.IO
Public Class Form1
    Function GetDirectorySize
(ByVal DirPath As String) As Long
        Dim DirSize 
As Long
        Dim Dir 
As DirectoryInfo = New DirectoryInfo(DirPath)
 
       Dim ChildFile As FileInfo
        For Each ChildFile In Dir
.GetFiles()
 
           DirSize += ChildFile.Length
        Next
        Dim SubDir 
As DirectoryInfo
        For Each SubDir In Dir
.GetDirectories()
 
           DirSize += GetDirectorySize(SubDir.FullName)
 
       Next
        Return DirSize
    End 
Function
 
   Private Sub gmy(dpath As String)
 
       Dim s As Long GetDirectorySize(dpath)
 
       ListBox1.Invoke(Sub() ListBox1.Items.Add(dpath " " " byte"))
 
   End Sub
    Private Sub btnGetFolderssize_Click
(sender As ObjectAs EventArgsHandles btnGetFolderssize.Click
        Dim fbd 
As New FolderBrowserDialog
        If fbd
.ShowDialog DialogResult.OK Then
            ListBox1
.Items.Clear()
 
           Dim th As New Threading.Thread(AddressOf gmy)
 
           If th.IsAlive False Then
                th
.Start(fbd.SelectedPath)
 
           End If
 
       End If
 
   End Sub
End 
Class 
عدل على الكود ليناسب المطلوب.

(09-09-23, 11:48 PM)أبو خالد الشكري كتب : رائع
ولكن أظن أنه يكون أفضل لو تظهر النتيجة بالجيجا بايت أو بالميجابايت بدلا من البايت !

هذا موضوع رائع تناول مسألة عرض الحجم بالجيجا بايت أو بالميجابايت بدلا من البايت
[سؤال] معرفة حجم ملف

أرجو منك أخي أبو خالد الشكري أن تخبرني رأيك فيه بعد أن تتمكن من دمجه مع هذا الكود


RE: معرفه حجم كل المجلدات في القرص C بشكل واضح - أبو خالد الشكري - 10-09-23

شكرا لك أخي Asem2 لقد نجحت التجربة
حيث قسمت الناتج الذي قيمته بالبايت Byte على 1048576
فظهرت النتيجة بالميجا Mega

حيث بالتعديل على السطرين التاليين :
كود :
Dim s As Long = GetDirectorySize(dpath) / 1048576
ListBox1.Invoke(Sub() ListBox1.Items.Add(dpath & " " & s & " ’Mega"))

أرجو ألا أكون قد أخطأت .