VB.NETでオブジェクト破棄をするには?

解決


毒舌  2003-08-01 06:22:07  No: 107935

皆さん始めまして。
以下のようなコードを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)


魔界の仮面弁士  2003-08-01 08:55:08  No: 107936

Nothing前に、TextStreamオブジェクトのCloseメソッドを呼び出してください。


毒舌  2003-08-01 20:53:46  No: 107937

解決しました。
ちなみに実際のコーディングではcreateの後に
別のサブルーチン内でもScripting.FileSystemObjectを
生成しておりその中でもclose処理をしていなかった為、
nothingの前にcloseを入れてもエラーになっていました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加