- 締切済み
VB2005でのテキストファイルのアクセス権
ある条件の下テキストファイルを出力していますが、 出力ファイルを開いた状態で、再度ツールを実行すると 「別のプロセスが・・・アクセスできません。」 というエラーにはじかれてしまいます。 現在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]などがあるようで、 いろいろ試しましたが、どうもうまくいきません。 ご存知の方いらっしゃいますか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kikujack
- ベストアンサー率47% (17/36)
下記のコードはどうでしょう。FileStreamをつかわず、直接にStreamWriterを使います、もっと簡単です。 Dim stFile As New System.IO.StreamWriter(strNewDir, False, System.Text.Encoding.GetEncoding("shift-jis")) stFile.WriteLine("問題ない") stFile.Close()
- redfox63
- ベストアンサー率71% (1325/1856)
stFileのCloseをしていないためでは無いですか
補足
回答ありがとうございます。 上記補足でも書きましたが、ほかに原因があるようです。 そして、新たな情報がわかりました。 Notepadやwordpadでは開くことができました。 私が使っているエディタ(秀丸エディタ)ではできなかったので そちらから再度調査したいと思います。
補足
回答ありがとうございます。 すっきりした記述ですね。 しかし、残念ながら結果は同じでした。 問題となっているのは、出力したテキストを閲覧しながら 再度exeを実行したために、ファイル作成時に 「テキストエディタがオープンしているのでVBでは開けません」 ということです。 もちろん[Close]してないとかは、関係ないと思います。 しかも、Read Only(読み取り専用)でも開けないのです。 そういったプロセスを無視して ファイルを上書きで作成するというのはできないのでしょうかね?