エラー 5:ファイルの書き込み、削除や置換で「ファイルがすでに開いています」というエラーが発生する

更新しました Oct 6, 2023

使用製品

ソフトウェア

  • LabVIEW

問題

LabVIEWでファイルI/O VIを使用してファイルへの書き込み、削除、または置き換えをしようとしていますが、コードを実行すると、下記のエラーが発生します。この問題を解決するにはどうすれば良いですか?
 

エラーコード5が不明位置で発生

考えられる理由:
LabVIEW: ファイルはすでに開いています。

解決策

問題を解決する方法は、以下のとおりです。
 
  • ファイルを予約している他のアプリケーション(バックアップアプリケーション、NI Datafinder、デスクトップ検索アプリケーションなど)がある場合、
    • エラー5の場合にファイル操作を再試行するエラー処理を追加します。
    • 問題のあるアプリケーションを無効にします。
 
  • LabVIEW VI内で同じファイルに複数回同時にファイル書き込みを実行しようとしている場合は、次のいずれかをおこないます。
    • 並列処理から順次処理する
    • 非同期のファイルI/O APIを使用する (例: TDMS上級API)
 
  • アプリケーションビルダの場合:
    • ビルドディレクトリを削除してから、アプリケーションを再ビルドします。すなわち プロジェクト内で、ビルド仕様>>アプリケーション名を右クリックしてクリーンアップを選択します。
    • ビルドディレクトリの場所を変更してみます。

追加情報

エラー5は、別のプロセスが既にファイルを開くリファレンスを持っているため、ファイルI/O VIが既存のファイルへのリファレンスを開くことができない場合に発生します。これは、LabVIEW、他のアプリケーション、またはオペレーティングシステムがすでに書き込み用にファイルを開いている場合に発生します。

エラー5は、ファイルがすでに開かれていて、競合状態を防ぐ方法として、またはファイルアクセスを制御する方法として信頼されるべきではない場合に発生させることが保証されていません。