PDA

View Full Version : مشکل در کار با فایلها



Arashdn
یک شنبه 15 بهمن 1391, 15:36 عصر
سلام
چند وقت پیش رو یه پروژه در مورد فایل ها کار می کردم به خاطرم امتحانات و ... موقتا بی خیالش شدم
حالا دارم پروژه رو از نو شروع میکنم
من لازم دارم که لیست تمام فایل ها و کل فولدر ها و ساب فولدر های داخل اون رو بگیرم
یعنی مثلا اگه در درایو سی پوشه windows دارم هر چی فایل توشه نشون بده و بعد دونه دونه فولدر های توش اگه تو هر فولدرش بازم فولدر بود محتوای اونم نشون بده و همینطور الی اخر) در واقع لیست هر چی فایل و فولدر تو درایو C هست رو لازم دارم
یه همچین کدی نوشتم
ff = Dir(Dir1.Path + "\", vbHidden Or vbSystem Or vbArchive Or vbReadOnly Or vbDirectory)


While ff <> ""

If ff <> "." And ff <> ".." Then
Print ff
End If
ff = Dir()
Wend
اما با این روش محتوای فولدر ها نمایش داده نمیشه
چطور میشه محتوای فولدر ها رو هم به دست آورد؟
ممنون

Hashemvp
سه شنبه 17 بهمن 1391, 04:20 صبح
سلام
دوست عزیز از این نمونه کد پایین ک میذارم میتونی استفاده کنی قبلا خودم استفاده کردم مشکلی نداره

'رفرس Microsoft Scripting Runtime رو اول اضافه کن
Dim oFileSys As Scripting.FileSystemObject
Dim oFolder As Scripting.Folder
Dim oSubFolder As Scripting.Folder

Set oFileSys = New Scripting.FileSystemObject
Set oFolder = oFileSys.GetFolder("C:\")

For Each oSubFolder In oFolder.SubFolders
'کد های مربوطه رو اینجا مینوسی مثل اضافه شدن در لیست باکس یا هر چیز دیگه ای ک مد نظرت هست
Next oSubFolder

Set oFolder = Nothing
Set oFileSys = Nothing

موفق باشی

Arashdn
سه شنبه 17 بهمن 1391, 16:43 عصر
سلام
دوست عزیز از این نمونه کد پایین ک میذارم میتونی استفاده کنی قبلا خودم استفاده کردم مشکلی نداره

'رفرس Microsoft Scripting Runtime رو اول اضافه کن
Dim oFileSys As Scripting.FileSystemObject
Dim oFolder As Scripting.Folder
Dim oSubFolder As Scripting.Folder

Set oFileSys = New Scripting.FileSystemObject
Set oFolder = oFileSys.GetFolder("C:\")

For Each oSubFolder In oFolder.SubFolders
'کد های مربوطه رو اینجا مینوسی مثل اضافه شدن در لیست باکس یا هر چیز دیگه ای ک مد نظرت هست
Next oSubFolder

Set oFolder = Nothing
Set oFileSys = Nothing

موفق باشی
سلام
این روش هم لیست فولدر ها و فایل های موجود در فولدر رو نمیده و فقط لیست فولدر های مسیر انتخاب شده است ....

saber67
سه شنبه 17 بهمن 1391, 18:14 عصر
دوست عزیز کدی که Hashemvb گذاشته جواب میده
اما من بازم همون کد رو ساده ترش کردم برات
اول ریفرنس Microsoft Scripting Runtime رو به برنامت اضافه کن
یه لیست باکس بزار تو فرم و کد زیر رو هم کپی کن توی برنامت


Private Sub Form_Load()
Call FindItems("C:\")
End Sub

Public Sub FindItems(ByVal StrPath As String)

Dim oFileSys As Scripting.FileSystemObject
Dim oFile As Scripting.File
Dim oFolder As Scripting.Folder
Dim oSubFolder As Scripting.Folder

Set oFileSys = New Scripting.FileSystemObject
Set oFolder = oFileSys.GetFolder(StrPath)

For Each oSubFolder In oFolder.SubFolders
List1.AddItem oSubFolder.Name & " - (Folder)"
Next oSubFolder

List1.AddItem "------------------"

For Each oFile In oFolder.Files
List1.AddItem oFile.Name & " - (File)"
Next oFile

End Sub