|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
添加个窗体,在窗体上添加几个控件可
e8 h9 c Q3 W2 xPrivate Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _( x, P* A; z0 Z, c7 ]4 c8 {7 n
ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
0 \& s: ?. f) v* M0 | ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long0 U8 S; n1 e# ` F" C5 o5 B
7 Y0 ^, ` f9 i9 B* R# UFunction FindFiles(path As String, SearchStr As String, _/ x) c7 x$ c H$ i
FileCount As Integer, DirCount As Integer)
+ h, j- b' ~) ` Dim FileName As String ' Walking filename variable.
# Y' ]* \/ o* W+ Z( h6 F Dim DirName As String ' SubDirectory Name.
- _; T6 B5 e% O7 Z* g+ _ Dim dirNames() As String ' Buffer for directory name entries.
) q8 ~% \) n( ]# x, x) E Dim nDir As Integer ' Number of directories in this path.+ ]/ C8 q6 [7 S4 M% {
Dim i As Integer ' For-loop counter." b4 i& }! C1 `* ` k# [, ]
0 }0 g9 }2 S, N9 }! J6 C3 R8 w On Error GoTo sysFileERR
4 S/ w0 k, F* j5 | If Right(path, 1) <> "\" Then path = path & "\": b5 O8 z( ~* G: G! n: J
' Search for subdirectories.3 m- F% C% ^& b# i# k
nDir = 0
3 l+ E4 o7 [7 a ReDim dirNames(nDir)
8 C. x, F+ J2 R: x/ t& q DirName = Dir(path, vbDirectory Or vbHidden Or vbArchive Or vbReadOnly _
5 P1 ], }, Y; w# Y, NOr vbSystem) ' Even if hidden, and so on.. C5 n6 @: [: N4 I+ c
Do While Len(DirName) > 02 Y% Z, B# t* L; p1 }) v% d/ N
' Ignore the current and encompassing directories.
- N+ N' P- J3 g0 d) h: M' D8 ?, ] If (DirName <> ".") And (DirName <> "..") Then" ` d* `2 x2 D' W: J' n P9 ]
' Check for directory with bitwise comparison.
) h3 u6 c4 _/ {! t3 U$ H! v+ V If GetAttr(path & DirName) And vbDirectory Then
. I( g3 L, c, Y dirNames(nDir) = DirName- Y* _: G2 I+ E
DirCount = DirCount + 1* N. Y& [- q, l
nDir = nDir + 1
% k4 e* T! z8 A0 [- d- S' f ReDim Preserve dirNames(nDir)! W/ Y/ ]3 Y0 M. |' a+ R/ ?
'listbox2.AddItem path & DirName ' Uncomment to listbox& v" o+ v% a; G# w4 Z3 J7 h
End If ' directories.+ c0 u. R1 J' [/ i' k
sysFileERRCont:- y+ G2 A- j7 ]/ U& }
End If
3 t% b" c. ]7 @0 W: P DirName = Dir() ' Get next subdirectory.* u) R7 c5 T; h
Loop
$ [; \2 k1 U) R4 Z; [ N% B2 U N0 v& d/ g6 H; i. G
' Search through this directory and sum file sizes.
/ @' L8 ]0 A% U7 n+ q- Y FileName = Dir(path & SearchStr, vbNormal Or vbHidden Or vbSystem _
) R" E9 V5 Z1 t, {4 }3 O Or vbReadOnly Or vbArchive) {7 o' L l; H, f1 w0 T( M- Y6 }4 G4 a' O
While Len(FileName) <> 0* V1 d" ~/ p& E. I2 {
FindFiles = FindFiles + FileLen(path & FileName)4 o4 y& w7 h& r0 J& D* ~8 p
FileCount = FileCount + 1
: I5 ^0 \! m8 ` ' Load listbox box
) O* \/ q0 @' ^7 V ListBox2.AddItem path & FileName '& vbTab & _
. K e" P" J) Y8 H$ N" q$ y 'FileDateTime(path & FileName) ' Include Modified Date
% N% i+ w. c+ V3 r FileName = Dir() ' Get next file.
8 c, L; M$ B) ~% C Wend# D& v: x0 l0 z/ r
" t I5 g6 X6 T2 @# y ' If there are sub-directories..
$ u: ? J3 C9 ^0 d3 Y If nDir > 0 Then0 j$ ^# O5 E4 K' S
' Recursively walk into them) ?5 d& r0 D1 n% o- E2 F3 ~
For i = 0 To nDir - 1
# j/ P, c v# L0 G FindFiles = FindFiles + FindFiles(path & dirNames(i) & "\", _( \1 R* s4 y9 l# {
SearchStr, FileCount, DirCount)
3 X3 p$ a# f$ Z" s Next i7 |. c) K+ k9 c9 g8 Z L
End If
# V. @* V# w8 _* T+ d
9 o# V5 U1 l5 H# K+ D( ^: RAbortFunction:
) m9 X9 u3 o0 S6 @8 z( C8 Y Exit Function
5 P/ t( M6 p5 v0 [, usysFileERR:* g# u, n( o; R2 c8 D4 i) B* n
If Right(DirName, 4) = ".sys" Then9 H: I/ k8 K6 o# D/ l
Resume sysFileERRCont ' Known issue with pagefile.sys
A$ E4 y& q' d( M& o Else
; h1 a4 M; E) j! d MsgBox "Error: " & Err.Number & " - " & Err.Description, , _+ x9 W& ?2 G7 g% y6 p
"Unexpected Error", @& A! h' Q2 [7 Q8 V
Resume AbortFunction
' h& D6 \' {0 q& s3 @8 N$ } End If H* J) M3 k, |6 ^& Y8 ?
End Function8 e; d& q! t: \3 v, z
2 F! _5 T( b1 u- F+ n( d: EPrivate Sub CommandButton1_Click()
3 F4 p6 r: W& T4 [; U* ~SearchForm.Hide3 l/ y9 ?) ^+ B6 l, {
End Sub! A/ }: L; G, \- T
8 _ T2 f3 w( J( j Private Sub Commandbutton2_Click()
! l5 x4 l4 Z+ p) l* g9 Y Dim SearchPath As String, FindStr As String+ v% R8 n6 G2 |( [1 x1 h
Dim FileSize As Long
* g1 j. P6 n$ ?/ y! [/ d. I) Y Dim NumFiles As Integer, NumDirs As Integer2 Z$ J& [, G" E2 i! l
" H1 N" _1 w. c3 \6 V5 g5 E3 m+ D9 L 'Screen.MousePointer = vbHourglass; d; g b; m2 o7 Q5 F
ListBox2.Clear
% ^( W1 ]) B; H* B0 b! `) o SearchPath = TextBox1.Text3 l* M9 G d# p1 t4 {! d+ {7 W
FindStr = "*" & TextBox2.Text & "*" & TextBox3.Text7 {% m" N* T5 d( X. g* `
FileSize = FindFiles(SearchPath, FindStr, NumFiles, NumDirs)
+ p2 J% k& M3 ^4 n" F TextBox5.Text = NumFiles & " Files found in " & NumDirs + 1 & _
& A' p* S$ Q& T& o: w: V " Directories"
- ^4 B, r: n' U; M7 B 'textbox6.Text = "Size of files found under " & SearchPath & " = " & _
b a& }9 N, ~! \/ j5 D, [ 'Format(FileSize, "#,###,###,##0") & " Bytes"- F1 k3 ~; S! X v- B3 ~4 T
'Screen.MousePointer = vbDefault7 b' }/ h$ l& f; y+ o7 e3 \$ p
If ListBox2.ListCount = 1 Then ListBox2_Click
+ V% N0 M u9 a! ` g, q ?$ C5 x End Sub
& t8 d6 y4 O7 g% V& q
# N" E: M- K+ m6 v; d+ d1 |+ c; Z1 j
Private Sub ListBox2_Click()3 q8 h6 y, n& x% l9 v! c4 c" G
Dim strfilename As String
! Q6 K' V% V& `! a4 T1 |If ListBox2.ListCount >= 1 Then) m2 o. F; f7 K$ ^& d
'如果没有选中的内容,用上一次的列表项。
; J/ }2 }; m6 ^* r* w! H If ListBox2.ListIndex = -1 Then& t3 L' z x0 S" X# `3 o7 i# z* T/ G9 q
ListBox2.ListIndex = _+ k' A1 n: M1 g7 Y: o6 @7 g) r
ListBox2.ListCount - 1" C# ^. |( X% B5 A6 k4 ?+ f
End If
# O3 ~- {6 @) J strfilename = ListBox2.List(ListBox2.ListIndex)8 M! Z& X$ D- b, I4 M
4 F) Q- c" K: ? D/ t3 `$ q ShellExecute Application.hwnd, "open", strfilename, _
7 F8 A7 S$ r1 u4 G! t3 _ vbNullString, vbNullString, 3' T6 Z$ A8 m# b3 R
End If" X8 f( a( V6 n( x" N4 `0 L! c
/ A, }; p# w; n5 `( `1 R
# N; b2 Q, D0 E& ^ t# K
End Sub) m6 Z: l. j2 [# K' @
: Z* y# K; i2 _9 RPublic Sub Start(ByVal strfilename As String, ByVal searchfolder As String)& W6 f; T. y" ]: A4 p3 {
Dim sel
! y& X# z) H: i. Z3 l; U1 fDim fs
6 R* |, J4 ?% zCommandButton2.Caption = "SEARCH"
O; H8 n& J; L! U- _'MsgBox (strfilename)/ s5 }, k. M; r+ q# ]2 M
strfilename = Strings.Left(strfilename, 8) '取前八位8 {/ {/ f4 [. b4 k$ f! l4 Q+ z# M
TextBox1.Text = searchfolder
6 {: w" \3 a O1 `- hTextBox2.Text = strfilename
: X& R7 `- R1 vSearchForm.Show vbModeless
$ x% h& c0 ~7 q/ D, r
1 I1 }1 v/ \- S( _% DIf Strings.Left(strfilename, 2) <> "17" And Strings.Left(strfilename, 2) <> "H7" And Strings.Left(strfilename, 1) <> "S" Then, N% F: [5 a5 u$ o
MsgBox ("Not drawings No.")% s7 S6 x, p, y
; ^" m+ L4 B6 W% U1 x r
Exit Sub
" k3 v- e7 n; t# B/ L! ]& jEnd If7 P8 ?$ O0 z9 _9 S$ A. w
! `; f" @ K; j$ s 'CommandButton1.Caption = "Use API code"( K% _& a( [, L8 ^
# B3 W: i) j8 F% r' V1 b ' start with some reasonable defaults: u2 F w3 D: @; U/ S, e
Commandbutton2_Click
: Y2 A1 u2 W# n$ fEnd Sub |
|