تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود يحسب حجم الملفات
#1
الســلام عليكم ورحمة الله وبركاته 

محتاج كود يحسب حجم كل المجلدات الموجوده في مسـار ثابت ويعطيني المسـاحه الشـاغره والمتوفره
الرد }}}
تم الشكر بواسطة:
#2
كود :
  Dim infoReader As System.IO.FileInfo
       infoReader = My.Computer.FileSystem.GetFileInfo("C:\Users\DOL\Music\")
       MsgBox("File is " & infoReader.Length & " bytes.")
 من يسـاعدني في توضيح الكود
الرد }}}
تم الشكر بواسطة:
#3
تفضل اخى
كود :
       Dim CalculatedSize As Decimal
       Dim TheSize As Long = Long.Parse(My.Computer.FileSystem.GetFileInfo("E:\Music\New folder\Avril Lavigne - I Love You [Goodbye lullaby] - YouTube.mp3").Length)
       Dim SizeType As String = "B"
       If TheSize < 1024 Then
           CalculatedSize = TheSize

       ElseIf TheSize > 1024 AndAlso TheSize < (1024 ^ 2) Then 'KB
           CalculatedSize = Math.Round((TheSize / 1024), 2)
           SizeType = "KB"

       ElseIf TheSize > (1024 ^ 2) AndAlso TheSize < (1024 ^ 3) Then 'MB
           CalculatedSize = Math.Round((TheSize / (1024 ^ 2)), 2)
           SizeType = "MB"

       ElseIf TheSize > (1024 ^ 3) AndAlso TheSize < (1024 ^ 4) Then 'GB
           CalculatedSize = Math.Round((TheSize / (1024 ^ 3)), 2)
           SizeType = "GB"

       ElseIf TheSize > (1024 ^ 4) Then 'TB
           CalculatedSize = Math.Round((TheSize / (1024 ^ 4)), 2)
           SizeType = "TB"

       End If
       MessageBox.Show("File size is: " & CalculatedSize.ToString & " " & SizeType, "File size", MessageBoxButtons.OK, MessageBoxIcon.Information)
الرد }}}
تم الشكر بواسطة:
#4
شكراً لتفاعلكم
أخوي أسامه المجلد اللي أبي أقيس حجمه داخله مجلدات هل الكود يعمل مع يتناسب معي ..؟

كود :
Dim CalculatedSize As Decimal
       Dim TheSize As Long = Long.Parse(My.Computer.FileSystem.GetFileInfo("C:\Music\").Length)
       "Dim SizeType As String = "B
كود :
       If TheSize < 1024 Then
المسـار المجلدات الموجوده داخل Music 
لما أضع المسـار بهذه الطريقه يعطيني خطأ
الرد }}}
تم الشكر بواسطة:
#5
(01-12-15, 09:00 PM)adel27 كتب : شكراً لتفاعلكم
أخوي أسامه المجلد اللي أبي أقيس حجمه داخله مجلدات هل الكود يعمل مع يتناسب معي ..؟

كود :
Dim CalculatedSize As Decimal
       Dim TheSize As Long = Long.Parse(My.Computer.FileSystem.GetFileInfo("C:\Music\").Length)
       "Dim SizeType As String = "B
كود :
       If TheSize < 1024 Then
المسـار المجلدات الموجوده داخل Music 
لما أضع المسـار بهذه الطريقه يعطيني خطأ

هل تريد قياس حجم المجلد نفسة ام الملفات التى بى المجلد ؟

اذا كنت تريد قياس حجم المجلد نفسةاستخدم هذا الكود

كود :
   Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
       Dim CalculatedSize As Decimal
       Dim SizeType As String = "B"
       Dim TheSize As Long = Long.Parse(DirectorySize("E:\Music\NewFolder", True))

       If TheSize < 1024 Then
           CalculatedSize = TheSize

       ElseIf TheSize > 1024 AndAlso TheSize < (1024 ^ 2) Then 'KB
           CalculatedSize = Math.Round((TheSize / 1024), 2)
           SizeType = "KB"

       ElseIf TheSize > (1024 ^ 2) AndAlso TheSize < (1024 ^ 3) Then 'MB
           CalculatedSize = Math.Round((TheSize / (1024 ^ 2)), 2)
           SizeType = "MB"

       ElseIf TheSize > (1024 ^ 3) AndAlso TheSize < (1024 ^ 4) Then 'GB
           CalculatedSize = Math.Round((TheSize / (1024 ^ 3)), 2)
           SizeType = "GB"

       ElseIf TheSize > (1024 ^ 4) Then 'TB
           CalculatedSize = Math.Round((TheSize / (1024 ^ 4)), 2)
           SizeType = "TB"

       End If
       MessageBox.Show("File size is: " & CalculatedSize.ToString & " " & SizeType, "File size", MessageBoxButtons.OK, MessageBoxIcon.Information)
   End Sub

   Private Overloads Function DirectorySize(ByVal sPath As String, ByVal bRecursive As Boolean) As Long
       Dim lngNumberOfDirectories As Long = 0
       Dim Size As Long = 0

       Try
           Dim fil As FileInfo
           Dim diDir As New DirectoryInfo(sPath)

           For Each fil In diDir.GetFiles()
               Size += fil.Length
           Next fil

           If bRecursive = True Then
               Dim diSubDir As DirectoryInfo
               For Each diSubDir In diDir.GetDirectories()
                   Size += DirectorySize(diSubDir.FullName, True)
                   lngNumberOfDirectories += 1
               Next

           End If

           Return Size

       Catch fex As System.IO.FileNotFoundException

           ' File not found. Take no action

       Catch ex As Exception
           ' Another error occurred
           Return 0

       End Try
   End Function
الرد }}}
تم الشكر بواسطة:
#6
هو مجلد داخله مجلدات أبي أقيس مساحة جميع المجلدات الداخليه 
في رساله واحده
الرد }}}
تم الشكر بواسطة:
#7
هاد الكود بيقيس مساحة جميع المجلدات يلي بداخل المجلد المحدد
كود :
   Shared Function GetDirectorySize(ByVal directory As String) As Long
       Dim TotalSize As Long = 0
       For Each s As String In IO.Directory.GetFiles(directory, "*.*", IO.SearchOption.AllDirectories)
           TotalSize += New IO.FileInfo(s).Length
       Next
       Return TotalSize
   End Function

وممكن بسطر مختصر
كود :
Dim directory As String = "C:\folder"
Dim directorySize As Long = (From s In IO.Directory.GetFiles(directory, "*.*", IO.SearchOption.AllDirectories) Select New IO.FileInfo(s).Length).Sum
أو
كود :
Dim directory As String = "C:\folder"
Dim directorySize As Long = IO.Directory.GetFiles(directory, "*.*", IO.SearchOption.AllDirectories).Sum(Function(s) New IO.FileInfo(s).Length)
الرد }}}
تم الشكر بواسطة:
#8
(01-12-15, 11:24 PM)adel27 كتب : هو مجلد داخله مجلدات أبي أقيس مساحة جميع المجلدات الداخليه 
في رساله واحده

تفضل
PHP كود :
Dim fsize As Long 0
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        Dim opn 
As New FolderBrowserDialog
        If opn
.ShowDialog Windows.Forms.DialogResult.OK Then
            fsize 
0
            getSize
(opn.SelectedPath)

 
           MsgBox(fsize.ToString " bytes")
 
           MsgBox(Format(fsize 1024"#.000") & " KB")
 
           MsgBox(Format(fsize 1048576"#.000") & " MB")
 
       End If

 
   End Sub
    Sub getSize
(ByVal path_ As String)
 
       For Each file As String In My.Computer.FileSystem.GetFiles(path_)
 
           Dim finnfo As New System.IO.FileInfo(file)
 
           fsize fsize finnfo.Length
        Next
        For Each file 
As String In My.Computer.FileSystem.GetDirectories(path_)
 
           getSize(file)
 
       Next
    End Sub 
الرد }}}
تم الشكر بواسطة: hamada558
#9
ألف شكـر على التفــاعل يا أصدقائي
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم