Private Sub Form_Load()
Dim sCurFile As String
Dim sCurDir As String
Dim colDir As Collection
If Right$(StartDir, 1) <> "\" Then StartDir = StartDir & "D:\deneme\"
Set colDir = New Collection
Set ListDir = New Collection
colDir.Add StartDir
While colDir.Count
sCurDir = colDir.Item(1)
colDir.Remove 1
sCurFile = Dir$(sCurDir, vbDirectory)
While Len(sCurFile)
If (sCurFile <> ".") And (sCurFile <> "..") Then
If GetAttr(sCurDir & sCurFile) = vbDirectory Then
Me.List0.AddItem sCurDir & sCurFile & "\"
Me.List2.AddItem sCurFile
End If
End If
sCurFile = Dir$
Wend
DoEvents
Wend
End Sub
sadece klasörleri buluyor. Sonunda buldum
Belki benden başkalarınında işine yarar. Herkese çok tşk ederim.
Çok teşekkürler Sayın erdem55. Mutlaka birilerinin işine yarayacaktır. Bir de izninle bir şey sormak istiyorum. Collection nasıl bir değişken türüdür.? Eklenen bir modüle veya ocx e referans mı veriliyor?
(26/11/2010, 02:15)Hayri16 yazdı: Collection nasıl bir değişken türüdür.? Eklenen bir modüle veya ocx e referans mı veriliyor?
Hayır.
Collection'lar, içerisinde birden fazla veri depolayabilen, gerektiğinde(benzersiz) veri ekleme, silme gibi işlemlere olanak sağlayan sanal nesnelerdir.
Örneğin Excel'de hazırladığım alttaki function ile bir aralığı benzersiz listeleyebiliyorum.
Aralıktaki veriler ilk önce benzersiz olarak Collection nesnesine alınmıştır, daha sonra oradan tek tek Dizi() adındaki başka bir sanal diziye alınmış ve sıralanmıştır.
Function Benzersiz_Listele(ByVal Aralik As Variant) As Variant
Dim Col As New Collection
Dim i As Long
Dim Dizi As Variant
Dim Hucre As Variant
On Error Resume Next
For Each Hucre In Aralik
Col.Add CStr(Hucre), CStr(Hucre)
Next
On Error GoTo 0
If Col.Count = 1 And Col.Item(1) = vbNullString Then
Benzersiz_Listele = Null
Exit Function
End If
ReDim Dizi(1 To Col.Count)
For i = 1 To Col.Count
Dizi(i) = Col.Item(i)
Next
Benzersiz_Listele = Dizi
End Function
Klasör listelemek için ben de bir örnek vereyim:
Sub Klasor_Listele()
'Microsoft Scripting Runtime referansını gerektirir
Dim FSO As FileSystemObject
Dim Yol As String, Klasor As Folder, Alt_Klasor As Folder
Yol = "C:\Documents and Settings\KLasörAdı\Desktop\"
Set FSO = New FileSystemObject
With FSO
Set Klasor = .GetFolder(Yol)
For Each Alt_Klasor In Klasor.SubFolders
Call MsgBox(Alt_Klasor.Name)
Next Alt_Klasor
End With
End Sub
Sayın erdem55;
Günaydın..
Rica etsem dosyanızın son halini ekleyebilir misiniz?
İlgi ve yardımınız için teşekkürler..
Bu arada konuya ilişkin katkı veren hocalarım ve forum dostlarına da teşekkürler.
Sayın maytas;
Öğretici açıklamalarınız için teşekkür ederim.
(26/11/2010, 11:27)assenucler yazdı: Sayın erdem55;
Günaydın..
Rica etsem dosyanızın son halini ekleyebilir misiniz?
İlgi ve yardımınız için teşekkürler..
Bu arada konuya ilişkin katkı veren hocalarım ve forum dostlarına da teşekkürler.
Syn assenucler Dosyam şuan daha hazırlık aşamasında olduğundan eklemiyorum. Bititiğide int cafecilerin işine yarayacağını düşündüğüm biir program olacağına inanıyorum. Treeview bağlantılarını bitirdikten sonra çok bi işlemi kalmıyor. Zaman bulursam en kısa zamanda bitirip en son halini ekleyeceğim. Herkese yardımları için çok tşk ederim.