§t¤l¥Ø¿ýªº·j´MÀÉ®×
¨Ó·½:cww, ¦Ñ©Ç
¥H¤U¬O¦Ñ©Ç¥S©Ò§@ªºNone Recursiveªº§@ªk¡C·PÁ¦ѩǴ£¨Ñªºµ{¦¡
¼ÐÃD¡G«D»¼°j¡BµL¨Ï¥Î¬É±ªºÀÉ®×·j´M
¤@¯ë¨Ó»¡¡A·j´M¥Ø¿ý¤Î¤l¥Ø¿ý©³¤U²Å¦X±ø¥ó¤§©Ò¦³ÀÉ®×¥\¯àªºµ{¦¡¼¶¼g¡A¤@¦V
»á¥O¤HÀY¯k¡A¦Ó³Ì«áªº¸Ñ¨M¤è¦¡¦h¥Î Recursive(µ{¦¡»¼°j©I¥s) ¨Ó¸Ñ¨M¡A¹³ VB5.0
©Òªþªº WinSeek.vbp ½d¨Ò¡A´N¬O FileListBox ©M Recursive µ{§ÇªºÝ¥Î¡A¨Ó¸Ñ¨M
³oÓ°ÝÃD¡C
¥»½d¨Ò«h¥Î¥t¤@ºØ«ä¦Ò¼Ò¦¡¤Á¤J¡A¦b¤£¨Ï¥Î¥ô¦ó OCX ¤Î Recursive µ{§Ç¤U§Q
¥Î¨âÓ«D©T©w°}¦CÅܼƤÎÂù¼h Do...Loop °j°é¸Ñ¨M³o°ÝÃD¡C¥»½d¨Ò¥Nªíªº§t·N¬O§A
§â³o¬q Code ·h¨ìµL¨Ï¥ÎªÌ¥iµø¬É±ªº Module ¤Î Class ùØ¡A¤@¼Ë¥i¥H°õ¦æ(µ{¦¡ùØ
ªº ListBox ¤Î MsgBox ¥u¬O¬°¤F¸Ñ»¡¤è«K¦Ó¤w¡A¹ê»Úªº¸ê®Æ¤w©ñ¤J FilePackage ³o
ӰʺA°}¦CùØ¡A¥i¥H Index ¨ú¥Î¡C)
·íµM§A¤£¯à®³ Windows95 ´£¨Ñªº[´M§ä]¥\¯àªº·j´M³t«×¨Ón¨D¥»½d¨Ò¡A¦]¬°
¨º®Ú¥»¬O¨âºØ¤£¦PªºÅX°Ê¤è¦¡¡A¦ý§Ú¥Î "c:\" ¬°·j´M±Ò©l¥Ø¿ý¡A¥H "*.*" ¬°±ø¥ó¨Ó
»P VB5.0 ªº½d¨Òµ{¦¡ WinSeek.vbp ¬Û¤ñ¡AWinSeek.vbp ¬O 2 ¤ÀÄÁ¡A§Ú¬O 2.5 ¤ÀÄÁ
¡C§óȱo¤@´£ªº¬O¡A¨ä¹ê¾ãÓ·j´M°Ê§@¦b 55 ¬í®É¤w¥þ³¡§¹¦¨¡A³Ñ¤Uªº®É¶¡³£¬O¥Î¨Ó
Åã¥Ü ListBox ¸ê®Æ¡C©Ò¥H¦pªG§Aªºµ{¦¡¨Ã¤£»Ýn¥ß§YªºÅã¥Ü¬d¸ßµ²ªG¡A¨º»ò¥»½d¨Ò
±N¤ñ WinSeek.vbp §ó¾A¦X§A¨Ï¥Î¡C
³Ì«á¦pªG§Aı±o¥»µ{¦¡¦³¥ô¦ó¿ù»~©Î¦³§ï¶iªº·N¨£¡A½Ð¼g«Hµ¹¯¸ªø¡A¯¸ªø·|Âà
«Hµ¹§Ú¡A¦b¦¹¥ýÁÂÁ§A¤F¡C
¦Ñ©Ç ¤W
' Need a ListBox, CommandBox
Option Explicit
'«Å§i·j´M¨ìªºÀɮתºÀx¦s°}¦CÅܼÆ
Private FilePackage() As String
Private Sub Command1_Click()
'«Å§i¦s©ñ¥Ø¿ý¦WºÙÀx¦s°}¦CÅܼÆ
Dim DirPackage() As String
'¦s©ñÀÉ®×·j´M±ø¥ó¤§¦r¦ê
Dim SearchString As String
'±µ¦¬ Dir() ¶Ç¦^¦r¦ê¡A¨Ã°µ¬°°j°é§PÂ_ªº¦r¦ê
Dim DirString As String
'I ¥Ø«e·j´M¥Ø¿ýªº«ü¦ì¾¹¡AJ ¬O DirPackage ¥Ø¿ý°}¦C¤§¤W«ü¼Ð
'K ¬O FilePackage ¤§ÀÉ®×°}¦C¤§¤W«ü¼Ð
Dim I As Long, J As Long, K As Long
'§â ListBox ªºÂÂÅã¥Ü¸ê®Æ²M±¼
List1.Clear
'§â FilePackage ªº¤W¤@¦¸·j´M¸ê®Æ²M±¼
Erase FilePackage
'°²³]§Ú̪º·j´M±q C ºÐ®Ú¥Ø¿ý¶}©l
ReDim DirPackage(0)
'¸ô®|µ²§À¤@©wn¥[ "\"
DirPackage(0) = "c:\"
'°²³]§Ú̪º·j´M¦r¦ê¬O "*.exe"
SearchString = "*.exe"
'Åã¥Ü¨Fº|«ü¼Ð
Me.MousePointer = 11
'-------- ¥H¤U·j´M C ºÐùةҦ³ªº¥Ø¿ý -----------------
'ª½¨ì¥Ø¿ý«ü¦ì¾¹ I ¶W¹L¥Ø¿ý¤W«ü¼Ð J ¤~µ²§ô·j´M
Do While I <= J
'·j´M¥Ø¿ý«ü¦ì¾¹ I ©Ò«üªº¥Ø¿ý
DirString = Dir(DirPackage(I), vbHidden Or vbDirectory Or vbReadOnly Or vbSystem)
'ª½¨ì¥Ø«e¥Ø¿ý§ä¤£¨ì¥ô¦ó¥Ø¿ý©ÎÀɮפ~µ²§ô
Do While DirString <> ""
'¤£n§â¤W¼h¥Ø¿ý©M²{¥Ø¿ýªº«ü¼Ð²Å¸¹ºâ¶i¥h
If DirString <> "." And DirString <> ".." Then
'¦pªG§ä¨ìªº¬Oӥؿý
If (GetAttr(DirPackage(I) & DirString) And vbDirectory) _
= vbDirectory Then
'§â¥Ø¿ý¤W¥[ 1
J = J + 1
'§âÀx¦s¥Ø¿ý¦WºÙªº°}¦C¥[¤@Ó
ReDim Preserve DirPackage(J)
'§â¬d¨ìªº·s¥Ø¿ý©ñ¦b DirPackage ·s¤¸¯ÀùØ
DirPackage(J) = DirPackage(I) + DirString + "\"
'¦pªG§ä¨ìªº¬OÓÀÉ®×
Else
'¦pªG»P·j´M¦r¦ê¬Û²Å¦X
If UCase(DirString) Like UCase(SearchString) Then
'§âÀx¦sÀɮצWºÙªº°}¦C¥[¤@Ó
ReDim Preserve FilePackage(K)
'§â¬d¨ìªº·sÀɮשñ¦b filePackage ·s¤¸¯ÀùØ
FilePackage(K) = DirPackage(I) + DirString
'§âÀɮפW¥[ 1
K = K + 1
End If
End If
End If
'Ä~Äò§ä¬O§_¦³²Å¦Xªº¸ê®Æ¡A¨Ã§âµ²ªG©ñ DirString ùØ
DirString = Dir
DoEvents
Loop
'§â²{¥Ø¿ý«ü¼Ð©¹¤U²¾¤@Ó
I = I + 1
Loop
'-------- ¥H¤U±Nµ²ªG¿é¥X¨ì¦C¥Ü²°ùØ -----------------
'-------- ¥H¤U¬°§ä¨ìÀɮפ§Á`p -----------------
'ÁÙì·Æ¹««ü¼Ð
Me.MousePointer = 0
If K = 0 Then
MsgBox "¨S¦³ " & SearchString & " ªºÀÉ®×"
Else
'¥H¤U±Nµ²ªG¿é¥X¨ì¦C¥Ü²°ùØ
For I = 0 To UBound(FilePackage)
List1.AddItem FilePackage(I)
DoEvents
Next
MsgBox "Á`¦@§ä¨ì " & UBound(FilePackage) + 1 & " ÓÀÉ®×"
End If
End Sub
|
' Need a CommandBox
Private FoundFile() as String '¦s©ñ¶Ç¦^Ȫº¦r¦ê°}¦C
Private ntx As Long
Private Sub Command1_Click()
ntx = 0
Call GetDirPath("c:\", "*.ini")
End Sub
Private Sub GetDirPath(CurrentPath As String, ByVal SearFile As String)
Dim nI As Integer, nDirectory As Integer, i As Long
Dim sFileName As String, sDirectoryList() As String
'First list all normal files in this directory
sFileName = Dir(CurrentPath, vbHidden Or vbDirectory Or vbReadOnly Or vbSystem)
Do While sFileName <> ""
If UCase(sFileName) Like UCase(SearFile) Then
i = GetAttr(CurrentPath + sFileName)
If (i And vbDirectory) = 0 Then
ReDim Preserve FoundFile(ntx)
FoundFile(ntx) = CurrentPath + sFileName
ntx = ntx + 1
End If
End If
If sFileName <> "." And sFileName <> ".." Then
'Ignore nondirectories
If GetAttr(CurrentPath & sFileName) _
And vbDirectory Then
nDirectory = nDirectory + 1
ReDim Preserve sDirectoryList(nDirectory)
sDirectoryList(nDirectory) = CurrentPath & sFileName
End If
End If
sFileName = Dir
Loop
'Recursively process each directory
For nI = 1 To nDirectory
GetDirPath sDirectoryList(nI) & "\", SearFile
Next nI
End Sub
|
¥H¤U¬O¦Ñ©Ç¥S©Ò§@ªºNone Recursiveªº§@ªk¡C·PÁ¦ѩǴ£¨Ñªºµ{¦¡
¼ÐÃD¡G«D»¼°j¡BµL¨Ï¥Î¬É±ªºÀÉ®×·j´M
¤@¯ë¨Ó»¡¡A·j´M¥Ø¿ý¤Î¤l¥Ø¿ý©³¤U²Å¦X±ø¥ó¤§©Ò¦³ÀÉ®×¥\¯àªºµ{¦¡¼¶¼g¡A¤@¦V
»á¥O¤HÀY¯k¡A¦Ó³Ì«áªº¸Ñ¨M¤è¦¡¦h¥Î Recursive(µ{¦¡»¼°j©I¥s) ¨Ó¸Ñ¨M¡A¹³ VB5.0
©Òªþªº WinSeek.vbp ½d¨Ò¡A´N¬O FileListBox ©M Recursive µ{§ÇªºÝ¥Î¡A¨Ó¸Ñ¨M
³oÓ°ÝÃD¡C
¥»½d¨Ò«h¥Î¥t¤@ºØ«ä¦Ò¼Ò¦¡¤Á¤J¡A¦b¤£¨Ï¥Î¥ô¦ó OCX ¤Î Recursive µ{§Ç¤U§Q
¥Î¨âÓ«D©T©w°}¦CÅܼƤÎÂù¼h Do...Loop °j°é¸Ñ¨M³o°ÝÃD¡C¥»½d¨Ò¥Nªíªº§t·N¬O§A
§â³o¬q Code ·h¨ìµL¨Ï¥ÎªÌ¥iµø¬É±ªº Module ¤Î Class ùØ¡A¤@¼Ë¥i¥H°õ¦æ(µ{¦¡ùØ
ªº ListBox ¤Î MsgBox ¥u¬O¬°¤F¸Ñ»¡¤è«K¦Ó¤w¡A¹ê»Úªº¸ê®Æ¤w©ñ¤J FilePackage ³o
ӰʺA°}¦CùØ¡A¥i¥H Index ¨ú¥Î¡C)
·íµM§A¤£¯à®³ Windows95 ´£¨Ñªº[´M§ä]¥\¯àªº·j´M³t«×¨Ón¨D¥»½d¨Ò¡A¦]¬°
¨º®Ú¥»¬O¨âºØ¤£¦PªºÅX°Ê¤è¦¡¡A¦ý§Ú¥Î "c:\" ¬°·j´M±Ò©l¥Ø¿ý¡A¥H "*.*" ¬°±ø¥ó¨Ó
»P VB5.0 ªº½d¨Òµ{¦¡ WinSeek.vbp ¬Û¤ñ¡AWinSeek.vbp ¬O 2 ¤ÀÄÁ¡A§Ú¬O 2.5 ¤ÀÄÁ
¡C§óȱo¤@´£ªº¬O¡A¨ä¹ê¾ãÓ·j´M°Ê§@¦b 55 ¬í®É¤w¥þ³¡§¹¦¨¡A³Ñ¤Uªº®É¶¡³£¬O¥Î¨Ó
Åã¥Ü ListBox ¸ê®Æ¡C©Ò¥H¦pªG§Aªºµ{¦¡¨Ã¤£»Ýn¥ß§YªºÅã¥Ü¬d¸ßµ²ªG¡A¨º»ò¥»½d¨Ò
±N¤ñ WinSeek.vbp §ó¾A¦X§A¨Ï¥Î¡C
³Ì«á¦pªG§Aı±o¥»µ{¦¡¦³¥ô¦ó¿ù»~©Î¦³§ï¶iªº·N¨£¡A½Ð¼g«Hµ¹¯¸ªø¡A¯¸ªø·|Âà
«Hµ¹§Ú¡A¦b¦¹¥ýÁÂÁ§A¤F¡C
¦Ñ©Ç ¤W
' Need a ListBox, CommandBox
Option Explicit
'«Å§i·j´M¨ìªºÀɮתºÀx¦s°}¦CÅܼÆ
Private FilePackage() As String
Private Sub Command1_Click()
'«Å§i¦s©ñ¥Ø¿ý¦WºÙÀx¦s°}¦CÅܼÆ
Dim DirPackage() As String
'¦s©ñÀÉ®×·j´M±ø¥ó¤§¦r¦ê
Dim SearchString As String
'±µ¦¬ Dir() ¶Ç¦^¦r¦ê¡A¨Ã°µ¬°°j°é§PÂ_ªº¦r¦ê
Dim DirString As String
'I ¥Ø«e·j´M¥Ø¿ýªº«ü¦ì¾¹¡AJ ¬O DirPackage ¥Ø¿ý°}¦C¤§¤W«ü¼Ð
'K ¬O FilePackage ¤§ÀÉ®×°}¦C¤§¤W«ü¼Ð
Dim I As Long, J As Long, K As Long
'§â ListBox ªºÂÂÅã¥Ü¸ê®Æ²M±¼
List1.Clear
'§â FilePackage ªº¤W¤@¦¸·j´M¸ê®Æ²M±¼
Erase FilePackage
'°²³]§Ú̪º·j´M±q C ºÐ®Ú¥Ø¿ý¶}©l
ReDim DirPackage(0)
'¸ô®|µ²§À¤@©wn¥[ "\"
DirPackage(0) = "c:\"
'°²³]§Ú̪º·j´M¦r¦ê¬O "*.exe"
SearchString = "*.exe"
'Åã¥Ü¨Fº|«ü¼Ð
Me.MousePointer = 11
'-------- ¥H¤U·j´M C ºÐùةҦ³ªº¥Ø¿ý -----------------
'ª½¨ì¥Ø¿ý«ü¦ì¾¹ I ¶W¹L¥Ø¿ý¤W«ü¼Ð J ¤~µ²§ô·j´M
Do While I <= J
'·j´M¥Ø¿ý«ü¦ì¾¹ I ©Ò«üªº¥Ø¿ý
DirString = Dir(DirPackage(I), vbHidden Or vbDirectory Or vbReadOnly Or vbSystem)
'ª½¨ì¥Ø«e¥Ø¿ý§ä¤£¨ì¥ô¦ó¥Ø¿ý©ÎÀɮפ~µ²§ô
Do While DirString <> ""
'¤£n§â¤W¼h¥Ø¿ý©M²{¥Ø¿ýªº«ü¼Ð²Å¸¹ºâ¶i¥h
If DirString <> "." And DirString <> ".." Then
'¦pªG§ä¨ìªº¬Oӥؿý
If (GetAttr(DirPackage(I) & DirString) And vbDirectory) _
= vbDirectory Then
'§â¥Ø¿ý¤W¥[ 1
J = J + 1
'§âÀx¦s¥Ø¿ý¦WºÙªº°}¦C¥[¤@Ó
ReDim Preserve DirPackage(J)
'§â¬d¨ìªº·s¥Ø¿ý©ñ¦b DirPackage ·s¤¸¯ÀùØ
DirPackage(J) = DirPackage(I) + DirString + "\"
'¦pªG§ä¨ìªº¬OÓÀÉ®×
Else
'¦pªG»P·j´M¦r¦ê¬Û²Å¦X
If UCase(DirString) Like UCase(SearchString) Then
'§âÀx¦sÀɮצWºÙªº°}¦C¥[¤@Ó
ReDim Preserve FilePackage(K)
'§â¬d¨ìªº·sÀɮשñ¦b filePackage ·s¤¸¯ÀùØ
FilePackage(K) = DirPackage(I) + DirString
'§âÀɮפW¥[ 1
K = K + 1
End If
End If
End If
'Ä~Äò§ä¬O§_¦³²Å¦Xªº¸ê®Æ¡A¨Ã§âµ²ªG©ñ DirString ùØ
DirString = Dir
DoEvents
Loop
'§â²{¥Ø¿ý«ü¼Ð©¹¤U²¾¤@Ó
I = I + 1
Loop
'-------- ¥H¤U±Nµ²ªG¿é¥X¨ì¦C¥Ü²°ùØ -----------------
'-------- ¥H¤U¬°§ä¨ìÀɮפ§Á`p -----------------
'ÁÙì·Æ¹««ü¼Ð
Me.MousePointer = 0
If K = 0 Then
MsgBox "¨S¦³ " & SearchString & " ªºÀÉ®×"
Else
'¥H¤U±Nµ²ªG¿é¥X¨ì¦C¥Ü²°ùØ
For I = 0 To UBound(FilePackage)
List1.AddItem FilePackage(I)
DoEvents
Next
MsgBox "Á`¦@§ä¨ì " & UBound(FilePackage) + 1 & " ÓÀÉ®×"
End If
End Sub
|