PDA

View Full Version : نمایش فولدر در تری ویو



arsalansalar
شنبه 31 مرداد 1388, 08:22 صبح
با سلام.
من برای اینکه تمامی فولدرهایم در یک treeview نمایش داده شود از کد زیر استفاده می کنم:

Function GetAllFiles(ByVal Dir As IO.DirectoryInfo) As IO.FileInfo()
Return Dir.GetFiles("*.*")
End Function
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
For Each item As IO.FileInfo In GetAllFiles(New IO.DirectoryInfo("D:\now project\save pic to Disk\bin\Debug"))
Me.tvDirectory.Nodes.Add(item.Name)
Next
end sub
اما مشکل اینجاست که من نمی دانم به جای
("*.*") چی بگذارم که خود فولدر را به تری ویو add کند.در واقع سوالم این است که پسوند فولدر چیست؟

Hossis
دوشنبه 02 شهریور 1388, 07:09 صبح
با سلام.
من برای اینکه تمامی فولدرهایم در یک treeview نمایش داده شود از کد زیر استفاده می کنم:

Function GetAllFiles(ByVal Dir As IO.DirectoryInfo) As IO.FileInfo()
Return Dir.GetFiles("*.*")
End Function
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
For Each item As IO.FileInfo In GetAllFiles(New IO.DirectoryInfo("D:\now project\save pic to Disk\bin\Debug"))
Me.tvDirectory.Nodes.Add(item.Name)
Next
end sub
اما مشکل اینجاست که من نمی دانم به جای
("*.*") چی بگذارم که خود فولدر را به تری ویو add کند.در واقع سوالم این است که پسوند فولدر چیست؟
پسوند فولدر یک "*" است ولی اشکال کد شما در این است که از تابع GetFiles که مربوط به فایل است استفاده کردید و این اشتباه است ،‌شما باید از تابع getdirectories استفاده کنید

Hossis
دوشنبه 02 شهریور 1388, 07:14 صبح
کد تصحیح شده


textbox1.Lines = IO.Directory.GetDirectories("d:\", "*", IO.SearchOption.TopDirectoryOnly)

fazelm
دوشنبه 02 شهریور 1388, 07:18 صبح
سلام . خسته نباشید . چطور میشه تو وی بی دات نت زیر مجموعه های یک فولدر رو پیدا کرد ؟؟

Hossis
دوشنبه 02 شهریور 1388, 07:49 صبح
سلام . خسته نباشید . چطور میشه تو وی بی دات نت زیر مجموعه های یک فولدر رو پیدا کرد ؟؟


textbox.lines=(IO.Directory.GetDirectories("d:\", "*", IO.SearchOption.TopDirectoryOnly))
بعد با یک حلقه FOr زیر پوشه تک تک این ها رو در میاری
البته در درون این حلقه ، به جای "d:\" باید ادرس

"d:\" & textbox.lines(i)
رو قرار بدی
توجه:‌I متغیری از نوع عدد است که بعد از for شما استفاده می کنید
من یک کد دارم که تمام شاخه های زی مجموعه رو تا آخرش پیدا می کنه
وقت کردم آپ می کنم

Hossis
دوشنبه 02 شهریور 1388, 07:52 صبح
این هم کد که به زبان وی بی 6 هست ،‌می تونی تبدیل کنی به دات نت و من تبدیل کردم درست کار کرد
البته باید کنترل هائی رو هم اضافه کنی

Sub FindDir(ByVal Path As String, lst As ListBox, FindStr As String, Subfolder)
Dim Tx As String
Dim FSO As New FileSystemObject
Dim FoldersName As Folders
Set FoldersName = FSO.GetFolder(Path).SubFolders
Dim FolderName As Folder
For Each FolderName In FoldersName
Tx = Mid(FolderName, InStrRev(FolderName, "\") + 1)
If LCase(Left(Tx, Len(FindStr))) = LCase(FindStr) Then
If Subfolder Then
If InStr(4, FolderName, "\") > 0 Then lst.AddItem FolderName
Else
lst.AddItem FolderName
End If
End If
FindDir FolderName, lst, FindStr, Subfolder
DoEvents
Next

End Sub