DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイルが削除できない

環境/言語:[XP .NET Framework 1.1]
分類:[.NET]

こんにちは。
処理の途中でファイルを作成するため、同じ名前のファイルがあるかどうかを調べ
同名ファイルが存在した場合、削除してから作成しようとしてます。

Dim fi As New FileInfo(ファイルのパス)
If fi.Exists Then
fi.Delete()
End If

上記の通りに削除を行おうとしているのですが
起動時にすでにファイルが存在している場合に削除が出来ず

「パス "ファイルの絶対パス" へのアクセスが拒否されました。」

というエラーになってしまいます。
起動時にファイルが存在しない場合はファイルの作成まで問題ないです。
その後に同じ処理をした場合にも、ファイルを削除して新たに作成されます。

何かわかる方いらっしゃいましたらよろしくお願いします。
こんにちわ。
理由は良くわかりませんが、

' フォルダ内のファイルを取得する
System.IO.Directory.GetFiles("ファイルのパス")

でファイルを取得して、無ければ作成、有ったら削除。
という風にしてみたらうまく行くのではないかと思います。

質問の答えにはなっていないかも知れませんね。。
SHさん、返答ありがとうございます。

リスト出力時に必要なdatファイルを作成するのですが、
ファイル名が「ユーザID.dat」というものです。
なので、同名ファイルが残ってる場合は削除して作成しなおすという流れになってます。

そのdatファイルがシステム起動時から存在すると削除ができずにエラーになります。
起動時になければ何の問題もないのですが...
手動でファイルを消してしまえば問題ないのですが、
毎回確認するわけにもいかないのでプログラムで削除してます。
下のような感じでどうでしょうか?

Dim files As String()
Dim i as integer

' フォルダ内のファイルを取得する。
files = System.IO.Directory.GetFiles("ユーザID.dat")

' ファイルが存在する場合、
If files.Length > 0 Then
'' 削除を行う
Else
'' ファイルを作成
End If
私も

>fi.Delete()

を使ってファイルを削除しようとして、できませんでした。

そのときは時間も無かったのでKILLを使用しました。
根本的には解決していません。
■No2939に返信(Tom'sさんの記事)
> 私も
>
> >fi.Delete()
>
> を使ってファイルを削除しようとして、できませんでした。
>
> そのときは時間も無かったのでKILLを使用しました。
> 根本的には解決していません。
>

私は、

'' ファイルが存在する場合は削除する。
If File.Exists("ファイルのパス") Then File.Delete("ファイルのパス")

でうまく行ってます。。


でも、前に作成したばかりのファイルに書き込みを行なおうとして、
エラーになってことがあります。
そのときは、時間をあけるために、他の処理を間にはさんだら、
回避できたような気がします。
これって
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=9097
とかの話とは違いますか?

DOBON.NET | プログラミング道 | プログラミング掲示板