皆さん始めまして。
以下のようなコードをvb.netで実行した場合ファイルの削除を実行した時点で
'System.Security.SecurityException' のハンドルされていない例外が
microsoft.visualbasic.dll で発生しました。
追加情報 : HRESULT からの例外です : 0x800A0046 (CTL_E_PERMISSIONDENIED)。
というメッセージが表示されエラーとなってしまいます。
直前のNewText = Nothingという命令が有効ではないようです。
色々調べましたがNewText.disposeとやってもダメでした。
system.io を使用すれば同様の処理が可能なのですが
vb6からの移行で作り変える時間がありません。
どなたかこのオブジェクトの破棄の方法をご存知の方が
いらっしゃいましたらご教授お願い致します。
問題のコード
Dim fso As Object
Dim NewText As Object
Dim tmpText As String
fso = CreateObject("Scripting.FileSystemObject")
tmpText = "d:\test.txt"
NewText = fso.CreateTextFile(tmpText, True)
NewText = Nothing
fso.DeleteFile(tmpText)
Nothing前に、TextStreamオブジェクトのCloseメソッドを呼び出してください。
解決しました。
ちなみに実際のコーディングではcreateの後に
別のサブルーチン内でもScripting.FileSystemObjectを
生成しておりその中でもclose処理をしていなかった為、
nothingの前にcloseを入れてもエラーになっていました。
ありがとうございました。
ツイート | ![]() |