2016-09-15 10 views
0

私はread.dbc packageからread.dbcの機能を使用しています。それは私のためにうまくいきます。エラー処理後にRでファイル接続を閉じるには?

不幸にも、読み込むファイルが破損することがあります。これを処理するために、try文を使用します。問題は、セッションが終了するまでファイルを削除できない方法で、Rセッションを終了するまで、破損したファイルがRで "オープン"のままであることです。

私のコードは次のとおりです。

ReadFile <- try(read.dbc("C:/LocalPath/A_File.txt")) 

は(セッションを終了する必要なし)途中で「近い」接続する方法はありますか?

また、rm()で変数を削除しようとしましたが、gc()でメモリをクリーニングしましたが、ファイルは開いたままです。

詳細:RStudio v0.99.484、Rのv3.3.1(x64)の、OSのWindows 7のEnterprise SP1

PS:単にDBCファイルではありません任意のファイルを読み込むしようと、エラーを再現するには、A TXTファイルなどがあります。

+0

と負荷、 'read.dbc'が適切にファイル接続を閉じないように見えるとして、それが彼らのgithubのページhttps://github.com/danicat/read.dbc/issuesにこの問題を報告するために、おそらく良いアイデアですエラーが発生した場合。 –

+0

@warmoverflow優秀なアイデア。問題を報告しました。ありがとうございます。 –

答えて

1

ファイルがCコードからロックされているので、これをRで実行することはできません。 thisファイルのdbc2dbfファンクションを見ると、ファイルを開き、それを解凍しようとしていることがわかります。エラー "処理"は、エラーを表示して戻るだけですが、悪い練習である開いたファイルを閉じることはありません。 (そう呼ばれたいのであればバグ)

このプロジェクトのgithubサイトで問題を開いても問題が解決しないかもしれません。

作業用のバージョンが切望されている(:P)場合は、エラーを通知する前にfcloseを呼び出すだけの簡単な修正をコンパイルしました。

hereをダウンロードできます。あなたのRライブラリを解凍してコピーするだけです。 library(custom.read.dbc)

+0

完璧に動作します!迅速な対応をありがとうございました。 –

関連する問題