dポイントプレゼントキャンペーン実施中!

Visual Basic 2005を使っています。
現在、複数の拡張子をサブフォルダ内も含めて検索し、削除するというものを作ったのですが、それ以外のファイルを削除する方法が分かりません。
作ったプログラムは下のものですがどうすればよいでしょうか?
よろしくお願いします。(宣言の部分は省略させてもらっています)

a = "場所" //(c\・・・)//
if a <> "" then
b = system.IO.Directory.GetFiles
(a,"*.txt",IO.SeachOption.AllDirectories)
for i=0 tob.lengh-1
My.computer.FileSystem.DeleteFile(b(i))
 Next
End if

If ・・・(ここから繰り返して拡張子を増やしています)

A 回答 (2件)

VBは使ったことがないので、正しい文法がわかりませんが、ファイル名(あるいはファイルパスが戻り値なのかも?)の右から、拡張子の文字数分を取って比較すればいいのでは?



.txt以外という場合ならこんな感じ?(正しい文法に修正してください)
if right(b(i), 4)<>".txt"
    • good
    • 0
この回答へのお礼

早い回答ありがとうございます。
さっそくやってみようと思います!!
ただ、できない場合また質問をさせていただくかもしれないので時間があればでいいのでよろしくお願いします。

お礼日時:2009/04/06 20:57

ある拡張子以外のものは削除したいと言う意味でしょうか?



bに全部のファイルを入れておいて、deleteの前に、指定拡張子以外であることを判断して削除するようにすれば良いのでは?
(dllとかシステムファイルとか削除しないように気をつけないと…)
    • good
    • 0
この回答へのお礼

返事が遅くなってしまいましたがありがとうございました。
一応if以下をElse ifとElseを使いやってみたのですが、うまくいきません……
基本的なことだとは思うのですがどうやって拡張子以外であることを判断させればよいでしょうか?
よろしければ教えていただけないでしょうか?

お礼日時:2009/04/06 20:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!