あるフォルダにぶら下がっている、全てのファイルのバックアップに必要な容量を得る関数を作成したいのですが、C言語の FindFirst FindNext のように使える組み込み関数はありますか?。またVBのプロシージャは再帰処理できるのでしょうか。
> VBのプロシージャは再帰処理できるのでしょうか。
出来ます。例えば
Faxt(n) = n! (階乗) を求める場合は次のような感じ。
Private Function Fact(n As Long) As Long
If n = 1 Then
Fact = 1
Else
Fact = n * Fact(n - 1)
End If
End Function
上を下のようには出来ないので、ご注意を。
Private Function Fact(n As Integer) As Double
Faxt = IIf(n = 1, 1, n * Faxt(n - 1))
End Function
残念ながらファイル検索用のDir関数は再帰不能です。
Dirを使うなら、結果をスタックに保持する工夫が必要です。
他にFileSystemObjectのFoldersコレクションを使う
方法もありますが、パフォーマンスを考えるなら、
API使った方がいいかもしれません。
(本当にパフォーマンス優先なら、容量算出DLLをC/C++で作り、
VBからはそれを呼ぶだけにするべきでしょうが)
う〜んやっぱりファイル検索VBでは難しいのですね、時間があればC/C++の勉強をしたいと思います。
匿名さん、SAYさんどうもありがとうございました。
ツイート | ![]() |