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

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



كيفية الحصول علي مساحة مجلد بالبايت في فجول بيسك - Iman Mohamed Omran - 21-04-18

السلام عليكم 
السال واضح وهوا 
اريد ان يقوم الجهاز بقراة مساحة مجلد داخل اي قرص
تم وضع مساحته في textbox 

وشكرا لكم


RE: كيفية الحصول علي مساحة مجلد بالبايت في فجول بيسك - محمد كريّم - 21-04-18

هذه طريقة بسيطة ولكنها ليست الأسرع

كود :
       Dim _fileSize As Long
       For Each _file As String In My.Computer.FileSystem.GetFiles("D:\YourFolder")
           Dim _fileInfo As New System.IO.FileInfo(_file)
           _fileSize += _fileInfo.Length
       Next
       TextBox1.Text = _fileSize.ToString() + " bytes"



RE: كيفية الحصول علي مساحة مجلد بالبايت في فجول بيسك - سعود - 21-04-18

Calculate the size of a directory and its subdirectories and displays the total size in bytes. : Directory « File Directory « VB.Net
الصراحة كود رائع جربته ويعمل بكفاءة.

يتبقى كيفية التعديل على الدالة لمعرفة عدد الملفات والمجلدات.


PHP كود :
Imports System.IO
Public Class Form1
    Public Shared 
Function DirSize(ByVal d As DirectoryInfo) As Long
        Dim Size 
As Long 0
        Dim fis 
As FileInfo() = d.GetFiles()
 
       Dim fi As FileInfo
        For Each fi In fis
            Size 
+= fi.Length
        Next fi
        Dim dis 
As DirectoryInfo() = d.GetDirectories()
 
       Dim di As DirectoryInfo
        For Each di In dis
            Size 
+= DirSize(di)
 
       Next di
        Return Size
    End 
Function 'DirSize
    Private Function gfc(ByVal d As DirectoryInfo) As Long
        Dim count As Long = 0
        Dim fis As FileInfo() = d.GetFiles()
        count += fis.Count
        Dim dis As DirectoryInfo() = d.GetDirectories()
        Dim di As DirectoryInfo
        For Each di In dis
            count += gfc(di)
        Next di
        Return count
    End Function
    Private Function gdc(ByVal d As DirectoryInfo) As Long
        Dim count As Long = 0
        Dim dis As DirectoryInfo() = d.GetDirectories()
        count += dis.Count
        Dim di As DirectoryInfo
        For Each di In dis
            count += gdc(di)
        Next di
        Return count
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim o As New FolderBrowserDialog
        If o.ShowDialog = DialogResult.OK Then
            Dim d As New DirectoryInfo(o.SelectedPath)
            fs.Text = DirSize(d)
            fc.Text = gfc(d)
            folderscount.Text = gdc(d)
        End If
    End Sub
End Class 

هذا التعديل اللازم بعد ان قارنت المعلومات كما ترون بالصورة.


RE: كيفية الحصول علي مساحة مجلد بالبايت في فجول بيسك - Iman Mohamed Omran - 27-04-18

شكرا علي مساعدتكم شباب 
الحين ب اجرب انشاء الله يعملو الاكواد ^_^


RE: كيفية الحصول علي مساحة مجلد بالبايت في فجول بيسك - Iman Mohamed Omran - 30-04-18

(21-04-18, 05:23 AM)سعود كتب : Calculate the size of a directory and its subdirectories and displays the total size in bytes. : Directory « File Directory « VB.Net
الصراحة كود رائع جربته ويعمل بكفاءة.

يتبقى كيفية التعديل على الدالة لمعرفة عدد الملفات والمجلدات.


PHP كود :
Imports System.IO
Public Class Form1
    Public Shared 
Function DirSize(ByVal d As DirectoryInfo) As Long
        Dim Size 
As Long 0
        Dim fis 
As FileInfo() = d.GetFiles()
 
       Dim fi As FileInfo
        For Each fi In fis
            Size 
+= fi.Length
        Next fi
        Dim dis 
As DirectoryInfo() = d.GetDirectories()
 
       Dim di As DirectoryInfo
        For Each di In dis
            Size 
+= DirSize(di)
 
       Next di
        Return Size
    End 
Function 'DirSize
    Private Function gfc(ByVal d As DirectoryInfo) As Long
        Dim count As Long = 0
        Dim fis As FileInfo() = d.GetFiles()
        count += fis.Count
        Dim dis As DirectoryInfo() = d.GetDirectories()
        Dim di As DirectoryInfo
        For Each di In dis
            count += gfc(di)
        Next di
        Return count
    End Function
    Private Function gdc(ByVal d As DirectoryInfo) As Long
        Dim count As Long = 0
        Dim dis As DirectoryInfo() = d.GetDirectories()
        count += dis.Count
        Dim di As DirectoryInfo
        For Each di In dis
            count += gdc(di)
        Next di
        Return count
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim o As New FolderBrowserDialog
        If o.ShowDialog = DialogResult.OK Then
            Dim d As New DirectoryInfo(o.SelectedPath)
            fs.Text = DirSize(d)
            fc.Text = gfc(d)
            folderscount.Text = gdc(d)
        End If
    End Sub
End Class 

هذا التعديل اللازم بعد ان قارنت المعلومات كما ترون بالصورة.

اوك حبي الحل -_- ان اريد ملف واحد وانا اختاره يعني اكتب مكانه انا وليس اختاره ب البرنامج شو اعمل كنت بافصص في الاكواد لكن لخبطت كثير لهاذا ياريت تعدله مشان يكون اختيار لملف واحد وانا اختاره ( مسار الملف انا اكتبه يعني حطلي مكان المسار ("path") ) 
وشكرا ^_^ علي شرح