DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
' Haluk
' 30/12/2018
'
Dim Counter As Long, sumSize As Double
'
Sub Test()
Dim myFolder As String
myFolder = ThisWorkbook.Path
Call GetFiles(myFolder, True)
MsgBox "PDF dosya sayisi= " & Counter & vbCrLf & vbCrLf & "Toplam PDF boyutu=" & Format((sumSize / 1024) / 1024, "0.00 MB")
Counter = Empty
sumSize = Empty
End Sub
'
Sub GetFiles(SourceFolder As String, IncludeSubFolders As Boolean)
Dim FSO As Object, strFolder As Object
Dim SubFolder As Object, strFile As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set strFolder = FSO.GetFolder(SourceFolder)
For Each strFile In strFolder.Files
If LCase(FSO.GetExtensionName(strFile.Name)) = "pdf" Then
Counter = Counter + 1
sumSize = sumSize + strFile.Size
End If
Next
If IncludeSubFolders = True Then
For Each strFolder In strFolder.SubFolders
GetFiles strFolder.Path, True
Next
End If
Set strFolder = Nothing
Set FSO = Nothing
End Sub
Ana dizin ve altında 10-15 klasör olsun. Bu alt klasörlerin boyutlarını listeleme imkanı olur mu?
for each fld in fso.getfolder("c:\testfolder").subfolders
debug.print fld.size
next
Haluk
Hocam merhaba.;
Bu kodlara Progresbar ı ekleme şansımız olabilirmi ? klasör çok olduğunda , süre uzuyor malum...
Teşekkürler.
________________________
| |
||||||||| % 58 |
|_______________________|
________________________
| |
||||||||| % 58 |
|_______________________|
Ancak; yukarıda örnek olarak verdiğim ASCI -şeklinde görüldüğü gibi, söz konusu %58'i hesaplayıp da ProgressBar nesnesine yazdırabilmek için ilk önce tamamının önceden hesaplanmış olması gerekir ki; bu yüzde değeri hesaplanabilsin. Sizin problemizde zaten alt klasör veya dosya sayısı bilinmediği için recursive tarzında bir kod hazırlamıştık.