三十路おっちゃん日記

ライター系記事とか,時事ニュースの感想とか,自作ソフトの説明とか

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- | トラックバック(-) | コメント(-)

すべてのサブフォルダを列挙(たぶん最速) 

vb6ですべてのサブフォルダを列挙って検索すると
Microsoft Scripting Runtime
だいだいコレを使ったサンプルが出てくる

再帰処理を使って割と短いコードで実現できるから
いままで使ってたけど、仕事で超大量検索が必要になり
余りに時間が掛かるので、もっと良いコードがないか探してみた
「フォルダ列挙 vb6」←こんなの

結論から言うと、全部にたり寄ったりで
真新しいコードは見つかりませんでした。

でも、どーしても高速化できないかと思い
vbの標準機能を使っていろいろコードを書いてたら
案外簡単なコードでなかなか早い処理ができました。

ネットの情報も便利だけど
キチンと処理を考えて、自分でコードを書くのも大事ですね


ま、唯一(?)の欠点というと
フォルダ順に列挙せず、階層順に列挙することかな

でも、Splitで分割して、配列をソートすりゃいい話だし
その処理を考慮しても、巷にあるサンプルよりも
高速に動作するんじゃないかな


高速に動作しなかったら
ごめんなさい(汗




'DirListBoxを1個追加して、visibleをfalseにしといてください
Private Sub Command7_Click()

Dim P As String, z As String
Dim i As Integer, S As String

P = "C:\Windows\" & vbCrLf

With Dir1
Do While Len(P) > 2
S = Mid(P, 1, InStr(P, vbCrLf) - 1)
P = Mid(P, InStr(P, vbCrLf) + 2)
z = z & S & vbCrLf
.Path = S
For i = 0 To .ListCount - 1
P = P & .List(i) & vbCrLf
Next i
Loop
End With

'MsgBox z

End Sub

スポンサーサイト
2014/05/09 | TB(0) | CM(3)
このコメントは管理者の承認待ちです
[ 2015/04/01 20:55 ] [ 編集 ]
このコメントは管理者の承認待ちです
[ 2014/07/16 09:25 ] [ 編集 ]
このコメントは管理者の承認待ちです
[ 2014/05/11 00:01 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。