VisualBasic Program Tips

フォルダー内全削除(ファイルツリーの作成を含む)サンプルプログラム
 最近、再び Visual Basicを引っ張り出してきて、プログラムをいじくっている。何を作っているかはまだ明かしたくないが、その中である程度汎用性のある処理を作ったので、メモ代わりに残すことにした。
 私もこんなものを自作するのは面倒くさいので、どこかにあるだろうとWebを幾つかのキーワードで検索したが、どこかのサポート掲示板で、「教えて」という書込みは見たがどうすればいいのかのコメントはなかったので仕方なく自作してみました。何とか動くようになったので公開します。
機能
 ★ 指定したフォルダー以下の全子フォルダーとその中の全ファイルを削除します。
で、その中では当然、ファイルとフォルダーを検索してファイルツリーを作っていますので、おまけにファイルツリーをファイルに書き出すような機能も入れてあります。

概要
 操作としては、 「Do」ボタンを押すと、まずテキストボックスで指定されたフォルダー以下のファイルツリーを作って、FTree.txt というファイルに書き出します。
 次に、全フォルダ/ファイルが削除されますと言う警告を出した後、全てのフォルダ/ファイルを削除します。
Windowsの機能としては、フォルダを選択して Delボタンを押すか ファイル → 削除 と操作すれば良いだけの話で、何と言うことはありませんが、これをプログラムとしてどう組むかというのが問題です。
 ファイルツリーを作成するサンプルは幾つか見たことがあるので、これを利用してその中にファイルの削除と、空になったフォルダーの削除を組み入れましたが、ポイントは一番下位のフォルダーを削除した後、再帰的にその親フォルダーを遡って削除していくことです。子フォルダーが2つあるような場合、片方の子フォルダーを削除してももう片方の子フォルダーが残っているのでそのフォルダーを再度 最下位まで下ってから順次上位のフォルダーを削除するようになっています。
 右図のように Form にテキストボックスとコマンドボタンを配置し、コーディングをこんな感じで記述します。



FTree.gif で、わざわざこんな複雑なファイルツリーを作ってから実行し、ファイルツリーを作成するとこうなります。 それが全て綺麗に削除できるのを確認しました。



あまり正確ではありませんが、フローは大体こんな感じです。


NAME.gif Ftop button.gif  総アクセス数