- Katılım
- 5 Ocak 2009
- Mesajlar
- 1,586
- Excel Vers. ve Dili
- 2003 Türkçe
Aşağıdaki kodlar ile Seçtiğim Klasör ve Alt Klasörlerin dosyalarını listeliyorum.
İstediğim şu Seçtiğim Klasörün alt klasörü olup olmadığını nasıl denetleyebilirim?
Alt klasör "var" veya "yok" gibi. Varsa sayısı gibi.
İstediğim şu Seçtiğim Klasörün alt klasörü olup olmadığını nasıl denetleyebilirim?
Alt klasör "var" veya "yok" gibi. Varsa sayısı gibi.
Kod:
Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
Sub dosya_listele_diger()
Dim klasor As Object
Dim dosya As String
Dim i As Long
check_say = 0
Set klasor = CreateObject("Shell.Application").BrowseForFolder _
(0, "Klasör Seçiniz...", 1) ' gözatma klasörü
If klasor Is Nothing Then Exit Sub
Liste (klasor.Items.Item.Path)
If MsgBox(klasor & " Klasöründeki Alt Klasörlerin Dosyalarını da Listelemek İstiyor musunuz?", vbYesNo, "LİSTELEME İŞLEMİ") = vbYes Then
AltListe (klasor.Items.Item.Path)
End If
Set klasor = Nothing
End Sub
Private Sub Liste(anayol As String) 'Seçilen klasör içindeki dosyaları listeleme modülü
Dim dosya As String, i As Long, f As Object
Dim lv As ListView
Set lv = DIPForm.ListView1
dosya = Dir(anayol & "\*.*") ' Seçilen klasördeki tüm dosyaları bulma
lv.ListItems.Clear
i = 1
While dosya <> ""
DoEvents
lv.ListItems.Add
lv.ListItems(i) = anayol & "\"
lv.ListItems(i).SubItems(1) = dosya
'lv.ListItems(i).SubItems(3) = FileDateTime(dosya)
dosya = Dir
i = i + 1
Wend
End Sub
Private Sub AltListe(altyol As String) 'Seçilen klasör içindeki alt klsörlerin içindeki dosyaları listeleme modülü
Dim fL As Object, f As Object, dosya As String, j As Long
Dim lv As ListView
Set lv = DIPForm.ListView1
Set fL = CreateObject("Scripting.FileSystemObject").GetFolder(altyol).SubFolders
On Error GoTo sonraki
For Each f In fL
dosya = Dir(f.Path & "\*.*") ' Seçilen klasördeki tüm dosyaları bulma
While dosya <> ""
DoEvents
j = lv.ListItems.Count + 1
lv.ListItems.Add
lv.ListItems(j) = f & "\"
lv.ListItems(j).SubItems(1) = dosya
'lv.ListItems(j).SubItems(3) = FileDateTime(dosya)
dosya = Dir
Wend
AltListe (f.Path)
sonraki:
Next
Set fL = Nothing
End Sub