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

ある条件の下テキストファイルを出力していますが、
出力ファイルを開いた状態で、再度ツールを実行すると
「別のプロセスが・・・アクセスできません。」
というエラーにはじかれてしまいます。

現在VB2005を使用していますが、以前VB6のときはエラーに
なりませんでした。
※Excelの場合はエラーになっていましたけど。
以下私のコードを抜粋
strNewDirはString型でパスが入っています。
Dim stFile As Stream = New FileStream(strNewDir, FileMode.OpenOrCreate)
Dim encSJIS As Encoding = Encoding.GetEncoding("shift-jis")
Dim swSJIS As StreamWriter = New StreamWriter(stFile, encSJIS)
・・・
swSJIS.Close()
という形でファイルアクセスしています。

New FileStreamには[Access]や[Share]などがあるようで、
いろいろ試しましたが、どうもうまくいきません。
ご存知の方いらっしゃいますか?

A 回答 (2件)

下記のコードはどうでしょう。

FileStreamをつかわず、直接にStreamWriterを使います、もっと簡単です。

Dim stFile As New System.IO.StreamWriter(strNewDir, False, System.Text.Encoding.GetEncoding("shift-jis"))
stFile.WriteLine("問題ない")
stFile.Close()

この回答への補足

回答ありがとうございます。
すっきりした記述ですね。
しかし、残念ながら結果は同じでした。

問題となっているのは、出力したテキストを閲覧しながら
再度exeを実行したために、ファイル作成時に
「テキストエディタがオープンしているのでVBでは開けません」
ということです。
もちろん[Close]してないとかは、関係ないと思います。
しかも、Read Only(読み取り専用)でも開けないのです。
そういったプロセスを無視して
ファイルを上書きで作成するというのはできないのでしょうかね?

補足日時:2008/05/12 16:34
    • good
    • 0

stFileのCloseをしていないためでは無いですか

この回答への補足

回答ありがとうございます。

上記補足でも書きましたが、ほかに原因があるようです。

そして、新たな情報がわかりました。
Notepadやwordpadでは開くことができました。
私が使っているエディタ(秀丸エディタ)ではできなかったので
そちらから再度調査したいと思います。

補足日時:2008/05/12 16:45
    • good
    • 0

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