質問です。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

上記の後、必要の無いファイルを検出して削除するには
どうすれば良いでしょうか?
凄く困ってるので、教えて下さい

このQ&Aに関連する最新のQ&A

A 回答 (3件)

ごたごた書いているが、


(1)人間がファイル名表示に基づき都度判断して
削除・残すをきめる
(2)プログラムソースやファイルに残すファイルのファイル名を持つ。
そしてそこにあるファイル名に、今掴んだファイルの名が該当するか
チェックをするルーチンを組む
場合によっては数の少ないほうを表に持つほうが楽な場合はあろう。
それしかないでしょう。
何が聞きたいのか?コードのことか
ーー
処理系によっては、例えば、VBScriptでは
ディクショナリ.Exists(ファイル名)なんてのも有るが。
VB2008でも有るから使うとか。
ファイルリストを配列に入れ、その配列を舐めるほうが簡単と思うが。
    • good
    • 0

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メソッドなどで出来ると思います
    • good
    • 0
この回答へのお礼

ありがとうございます!
DirectoryInfo、FileInfoクラスを使えば良いのですね。
参考になります。
回答ありがとうございました。

お礼日時:2009/05/14 11:13

手元にその手のマニュアルがないのでわかりませんが、dirlist() みたいな、そのディレクトリ内のファイルを順に読み出せる関数を

使って、一個一個確認したらいいんじゃないでしょうか?

この回答への補足

dirlist()って何ですか?なるべくソースで教えて欲しいのですが・・・。すいません・・。

補足日時:2009/05/14 01:42
    • good
    • 0

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


人気Q&Aランキング