アプリ版:「スタンプのみでお礼する」機能のリリースについて

ファイル削除について

C:\temp\111-001-会計.txt
C:\temp\111-001-人事.txt
C:\temp\111-001-総務.txt
C:\temp\111-001-販売.txt

このようなファイルがあったとします
これをワイルドカードを使って"111-001*"
というファイル全てを削除するプログ]ラムを
教えてください

ちなみにディレクトリは相対パスで指定できる
ようにしたいです

自分でも作成してみたのですが
ファイルのあいまい検索ができず困っているところです
また1件しか削除できないのでfor文か何かで回すのかなといった感じです
Public Sub DeleteFile(ByVal folder As String, ByVal searchPattern As String)
Dim stFileName As String = System.IO.Path.GetFileName(folder + searchPattern)
If System.IO.File.Exists(folder + searchPattern) Then
System.IO.File.Delete(folder + searchPattern)
MessageBox.Show("ファイルを削除しました")
End If
End Sub

A 回答 (3件)

プログラマーの1年生なんですね。


自分で調べて勉強することはいいことです。
良いところに就職できるといいですね。

ボクは某所でゲームプログラムの教務をしています。
まぁ、教えているのはC言語ですが、
色んな言語に手を出しているので、ある程度ならわかります。

あと、危険だと思われること以外は、
何でも試してみることが大事ですよ。

今回の相対パスで出来るかどうかは試してみるといいです。

まぁ、先ほど教えた「My.Computer.FileSystem.DeleteFile」の関数は、
使ったことが無いので、確実にできるとは言えませんが、
まずできると思います。試してみてくださいね。
    • good
    • 0

直接ワイルドカードを使っての削除ならKillを使用します。


確かに、お勧めは出来ません。

もう一つの方法はどうでしょう?

My.Computer.FileSystem.DeleteFile

を使えば、ループ関数は使いますがワイルドカードを使用しての削除が出来ています。
この部分ですね。


For Each FileName As String In System.IO.Directory.GetFiles( _
My.Computer.FileSystem.SpecialDirectories.Desktop, "*.txt")

'System.IO.File.Delete(FileName)

'オプションはお好みで
My.Computer.FileSystem.DeleteFile(FileName, FileIO.UIOption.AllDialogs, _
FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)

Next


「My.Computer.FileSystem.SpecialDirectories.Desktop」を
「C:\temp\」に変更し

「*.txt」の部分を「111-001*」に変更すれば、削除が出来ると思います。
    • good
    • 0
この回答へのお礼

お忙しいところ何度もご回答ありがとうございます。
相対アドレスで削除したいのですがそれはこのプログラムで
可能でしょうか。
何分にもプログラマ1年生の新人でして手取り足取りの回答を求め
申し訳けありません

お礼日時:2011/08/11 19:55

http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi …

このURLのやり方で、削除が出来るようになりまます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ちょっときになったのですが
※お勧めはできませんが、Kill 関数なら ワイルドカードが使用できるようです

とあるのであまり使いたくないです。また相対アドレスの指定方法がいまいち
わかりませんでした。

せっかくご回答いただいたのに申し訳けありませんが
他のプログラム方法を教えていただけませんでしょうか
本当に申し訳ありません。

お礼日時:2011/08/11 17:30

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