- 締切済み
[VB2008]ファイル存在確認について
質問です。VB2008を使ってる者ですが、以下のソースが分りません。 例で言います。 最初に以下のファイル存在を確認します。 C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt 全て存在する ここまでは良いのですが、この後 例えば C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt C:\TEST\test4.txt ←これ(これ) ファイルの存在確認で同じフォルダ("TEST")に 存在確認の必要としない不要ファイル("これ")を検出して 削除したいのですが、方法が分りません。 "これ"の不要ファイルの名前は、必ずしも"test4"では無い 存在チェック以外の不要ファイルを削除したいのです。 Dim checkFile As String = "C:\Work\Test.txt" If System.IO.File.Exists(checkFile) Then Console.WriteLine("ファイルが存在します") Else Console.WriteLine("ファイルが存在しせん") End If 上記の後、必要の無いファイルを検出して削除するには どうすれば良いでしょうか? 凄く困ってるので、教えて下さい
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
ごたごた書いているが、 (1)人間がファイル名表示に基づき都度判断して 削除・残すをきめる (2)プログラムソースやファイルに残すファイルのファイル名を持つ。 そしてそこにあるファイル名に、今掴んだファイルの名が該当するか チェックをするルーチンを組む 場合によっては数の少ないほうを表に持つほうが楽な場合はあろう。 それしかないでしょう。 何が聞きたいのか?コードのことか ーー 処理系によっては、例えば、VBScriptでは ディクショナリ.Exists(ファイル名)なんてのも有るが。 VB2008でも有るから使うとか。 ファイルリストを配列に入れ、その配列を舐めるほうが簡単と思うが。
- redfox63
- ベストアンサー率71% (1325/1856)
DirectoryInfo、FileInfoクラスを使えばいいのでは ' sPath検索したいフォルダー ' sName検索したいファイル名 Function myCheck( sPath as String, sName as string) as Boolean dim di as new DirectoryInfo( sPath ) for each fi in FileInfo in di.GetFiles if fi.Name = sName then return True end if next return False end function または Function myCheck( sPath as String, sName as string) as Boolean dim di as new DirectoryInfo( sPath ) dim fi() as FileInfo = di.GetFiles( sName ) return iif( fi.length = 0, False, True ) end function といった具合で 削除は FileInfoクラスのDeleteメソッドなどで出来ると思います
- somalia_shinji
- ベストアンサー率18% (27/143)
手元にその手のマニュアルがないのでわかりませんが、dirlist() みたいな、そのディレクトリ内のファイルを順に読み出せる関数を使って、一個一個確認したらいいんじゃないでしょうか?
補足
dirlist()って何ですか?なるべくソースで教えて欲しいのですが・・・。すいません・・。
お礼
ありがとうございます! DirectoryInfo、FileInfoクラスを使えば良いのですね。 参考になります。 回答ありがとうございました。