問題タブ [file-locking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4590 参照

c# - WPF コントロールで使用されたイメージを削除する

イメージをある種のコントロールにバインドし、後で削除したいと思います。

このコードの後、ファイルを削除したいと思います:

しかし、画像は現在使用されているため、それはできません。コードフラグメント 1 と 2 の間で、それを解放するにはどうすればよいですか?

0 投票する
3 に答える
2981 参照

.net - ファイルはどのプロセスによってロックされていますか?

.Net でどのプロセスがファイルをロックしたかを正確に知る方法はありますか?

編集:私は、ユーザーが使用している別のプログラム (Excel など) がファイルを開いているため、ファイルを変更/開くことができないことをユーザーに知らせたいので、これを行っています。うまくいけば、これは役に立ちます。

0 投票する
2 に答える
511 参照

java - WindowsとJavaでのファイルロックの削除

RandomAccessFileクラスを使用してファイルを開くJavaプログラムがあります。

Javaで開いているときに、そのファイルの名前を変更できるようにしたいと思います。Unixでは、これは問題ではありません。誰かが私がWindowsでこれを行う方法を知っていますか?

Javaを特定の方法で開くように設定する必要がありますか?

前もって感謝します。

編集、説明:このファイル共有アクセスをJavaコードで設定できるようにしたいと思います。

0 投票する
1 に答える
2282 参照

c# - ロック動作はネットワーク共有を介して異なります

他の複製されたサービスがファイルにアクセスできないように、ファイルをロックしようとしています。次に、ファイルを読み取り、終了したらファイルを移動します。移動は、を使用して許可されFileShare.Deleteます。

ただし、後のテストで、ネットワーク共有を調べている場合、このアプローチは機能しないことがわかりました。私のアプローチが最善ではなかったかもしれないことを感謝しますが、私の具体的な質問は次のとおりです。

以下のデモがローカルファイルに対して機能するのに、ネットワークファイルに対しては機能しないのはなぜですか?

ネットワーク共有がローカルディスクとは異なる動作をすることを示す情報が検索でほとんど見つからなかったため、具体的であればあるほどよいでしょう。

編集:ロックが設定されている間にファイルをあるネットワーク共有から別のネットワーク共有に移動したい場合は、これが機能することを言及する価値があります。この問題は、ファイルがロックされているときに同じファイル共有内でファイルを移動した場合にのみ発生するようです。

0 投票する
3 に答える
9749 参照

c++ - std::ifstream はスレッドセーフでロックフリーですか?

std::ifstream を使用して、多数のスレッドから 1 つのファイルを読み取るためのオープンを実行する予定です。私の懸念は、std::ifstream がスレッドセーフでロックフリーかどうかです。

詳細:

  1. Ubuntu と Windows XP では g++ 4.4、Leopard では 4.0 を使用しています。
  2. 各スレッドは std::ifstream の独自のインスタンスを作成します

前もって感謝します!

0 投票する
1 に答える
767 参照

windows - リモート マシン (Windows) でファイルをロックする簡単な方法は?

ログでエラーを追跡し、それを再現しようとしています。私の理論では、ファイルが特定のフォルダーでロックされることがあり、アプリケーション (ASP.NET) がそのフォルダーを削除しようとすると、ハングします。

自分のマシンでアプリケーションを実行していないため、リモート サーバーでこれをデバッグしています。しかし、私の人生では、プロセスによってファイルが削除されないようにファイルをロックする方法を理解できないようです。

私が最初に考えたのは、ネットワーク パスをローカル ドライブにマップし、そのフォルダーに対してコマンド プロンプトを開いたままにしておくことでした。ローカルでは、常にフォルダーの削除を汚しますが、SMB はもう少し堅牢で、ロックを許可しないようです。

その後、フォルダーに無限ループ vbscript を作成し、リモートで実行しました。ファイルは、実行中のコードの下から削除されました。おとこ!

次に、サーバー上のそのフォルダーにファイルを作成し、すべてのアクセス許可を削除しようとしました。それはうまくいきませんでした。IIS 設定にアクセスできないため、特権システム アカウントで実行されている可能性があります。

それで、あなたが知っている無料のプログラムは何ですか?ファイルに排他的ロックを作成して、削除理論をテストするためにすぐに使用できますか? 本当に、本当に悪いメモ帳のクローンか何かのように。

:-)

0 投票する
1 に答える
7312 参照

php - PHPはファイルがflock()でロックされているかどうかをチェックしますか?

fopen()ファイルが存在するが、現在は?でロックされている場合は失敗しますLOCK_EX

または、ロックを開いてから、ロックを設定して、ロックがすでに存在するかどうかを確認する必要がありますか?

私もそのflock()意志を読みました。

ロックが無期限に取得されるまで、またはスクリプトがタイムアウトするまで、[スクリプト]を一時停止します

http://www.php.net/manual/en/function.flock.php#95257

もしそうなら、この「一時停止」はバイパスすることができますか?

0 投票する
3 に答える
1546 参照

vb.net - ASP.NET ファイルのアップロード/リリースを待つにはどうすればよいですか?

VB で記述された ASP.NET イントラネット アプリケーションがあります。ユーザーからファイルを取得し、いくつかの異なるケースに応じて、ファイルのいくつかのコピーを作成し、元のファイルを移動する場合があります。

残念ながら、次のエラーが発生するケースに遭遇しました。

によってスローされMy.Computer.FileSystem.CopyFileます。そして、それが別のプロセスによって使用されていることは問題ありません-ユーザーからの保存/ダウンロード、または別のスレッド(?)がコピーしている間にコピーしようとしている可能性があります。私はそれについてあまり気にしません。私が知りたいこと:

ファイルが使用されなくなるまでファイルのコピー (および移動) を待機するように VB に指示する方法はありますか?

ありがとう

0 投票する
3 に答える
274 参照

java - VM 内の個々のスレッドのファイルをロックする

「データ」オブジェクトをファイルにシリアル化する複数のスレッドがあります。ファイル名は、オブジェクトの 2 つのフィールドに基づいています

2 つのデータ オブジェクトが同じ「時間」と「タイトル」を持ち、同じファイル名になる可能性があります。

これは許容範囲であり、どちらかが救われることを嬉しく思います。(それらが同じである場合、それらはおそらく同じ Data オブジェクトです)

私の問題は、2 つ (またはそれ以上) のスレッドが同時にファイルに書き込みを行っているため、不正な形式の XML が発生することです。

java.nio.channels.FileLock を見てみましたが、これは VM 全体のロック用であり、特にスレッド内ロックには適していません。

DataIO.class で同期できます (ただし、実際には個々のファイルでのみ同期したいので、これは大きなオーバーヘッドを引き起こします)。

複数の File オブジェクトが同じ System-File を表すことができるため、File オブジェクトでの同期は役に立ちません。

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

0 投票する
1 に答える
3640 参照

c# - C# でのログ ファイルのロックの問題

ログ ファイル エントリを XML ログ ファイルに書き込む Windows サービスがあります。サービスが稼働している間はログ ファイルへのハンドルを維持し、サービスが停止すると、ログ ファイルを閉じてフラッシュし、破棄します。ファイルの書き込み操作はサービスのみによるもので、共有が FileShare.Read に設定されている間、FileAccess.ReadWrite でファイル ストリームを開きます。別のアプリケーションで XmlRead() 呼び出しを使用してこのファイルを開いて表示できるようにしたいのですが、ファイルが別のプロセスによって使用されているというエラーが表示されます。これに関する別の投稿を読んだことがあり、これが可能であるという印象を受けました: Other Thread

使用中のライターはフラッシュされ、閉じられ、破棄され、ファイル ストリームへの書き込みごとにフラッシュされます。これは.Netでは不可能ですか、それとも何か間違ったことをしたのでしょうか? コードの縮小バージョンは次のとおりです。

ファイルを開くコードは次のようになりました。