Dim fileNum As Integer = FreeFile() FileOpen(fileNum, "C:\test.txt", OpenMode.Output)
Dim t1 As Type = GetType(Microsoft.VisualBasic.FileSystem)
'VB6Fileオブジェクトの取得 Dim vb6File As Object = t1.InvokeMember("GetChannelObj", _ Reflection.BindingFlags.InvokeMethod Or _ Reflection.BindingFlags.Static Or _ Reflection.BindingFlags.NonPublic, _ Nothing, _ Nothing, _ New Object() {Reflection.Assembly.GetEntryAssembly(), fileNum})
Dim t2 As Type = vb6File.GetType()
'FileStreamの取得 Dim fs As Object = t2.InvokeMember("m_file", _ Reflection.BindingFlags.GetField Or _ Reflection.BindingFlags.Instance Or _ Reflection.BindingFlags.NonPublic, _ Nothing, _ vb6File, _ Nothing) Dim fileStream As System.IO.FileStream = _ CType(fs, System.IO.FileStream)
分類:[.NET]
お世話になります。
VB.NETにてファイル出力のアプリを開発しています。
その際、空き容量の少ないFDへ「FileOpen−FilePut−FileClose」を
行なった場合、エラーが発生します。
ここまでは良いのですが、エラー発生時にFileCloseできないと言う
問題が発生しています。
⇒'System.IO.IOException' のハンドルされていない例外が mscorlib.dll で
発生しました。
追加情報 : ディスクに十分な空き領域がありません。
また、エラーを無視して終了(End)しても、上記エラーが発生します。
VBからのコンバートで同様の処理を行なっているPGが多数あり、未だにFDの
運用がある為、困っています。
FileCloseを正しく行なう方法か、上記エラーを表示させない方法を
ご存知の方がいらっしゃいましたら、ご教授の程お願いします。
宜しくお願い致します。