2016-11-25 23 views
0

私が使用しています:エラー:開いているファイルが多すぎます

download.file(url,path_file,mode="wb",quiet=quiet) 

をRバージョン3.2.3(2015年12月10日)でのWindows 7上の画像の大きな量をコピーします( TIFFファイル)。私は、ファイルの膨大な数のコピーする必要があります。300'00をそれが次の問題といくつかの時点で失敗しました:

「を開くことができませんdestfile 『TMP/74114070005_531__0.tiff』、理由 『開かれたファイルが多すぎます』 "

URLのコピーが失敗し、Rがサイズが0バイトの空のファイルを作成するが、Windowsがファイルをロックして削除できないという問題があります。だから失敗したファイルは、私がRを終了するまで開いたままになります。一定数のコピーが失敗した後、「開いているファイルが多すぎます」というエラーが表示されます。

ファイルごとに接続を閉じる方法はありますか? closeAllConnections()を試しましたが、これは影響しません。

Rコマンドを実行してRプログラムを再起動する方法はありますか?Windowsはファイルをロック解除しますか?

他の考えを歓迎します。

ファビアン

+0

あなたは 'httr :: GET(url、httr :: write_disk(path))'にもっと幸運を祈るでしょう – Rentrop

+0

@ Floo0ありがとう。私はまだ試していませんでしたが、私が前の機能を選択した理由は、「wininet」のおかげで自動的に資格情報が得られます。他のツールでは、私は代理認証を行うことができますが、私は私のcompagnyのKerberoseの自動化に悩まされていました。私はこの問題が最初に起きるのではないかと心配しています。 Windowsでファイルをロック解除するのは簡単ではありません。私がそれをやり遂げることができれば、再起動を試みることは可能な選択肢のようです。ありがとう。 –

答えて

2

おかげでこれは、ファイルをロックWindowsとの問題です。 Windowsを避けるのが最善の方法です。 Windowsを使用する必要のある人には、解決策があります。私は、Windows 7でそれをテストした:handle64:https://technet.microsoft.com/en-ca/sysinternals/bb896655.aspx?f=255&MSPPError=-2147217396

  • 管理者
  • ロックファイルのハンドルを見つけるようCMDプロンプトwindwosを開く:
    • からhandle.exe(またはhandle64.exe)をコピーします。 exeファイル-nobanner -p python.exe pattern_of_your_file
    • handle64.exe -p pid_your_file -c handle_your_file

    これらすべてのロックされたファイルを持っているために、この回避

  • 関連する問題