問題タブ [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.
c# - 書き込まれた直後にファイルを読み取ると、すべてゼロになります(.net)
ファイルが書き込まれるとすぐにディレクトリからファイルをロードする必要があるプログラムがあります。FileSystemWatcherに、ディレクトリの変更を通知してもらいました。イベントで何が変更されたかを確認するのではなく、ファイルを一覧表示して、見つかったすべての処理を開始します。
まだ書かれているファイルを読み込もうとしないように、次のようなコードがあります。
問題は、200分の1程度の一部のファイルでは、プログラムがすべてゼロを読み取ることです。ファイルの長さは正しいですが、内容はすべてゼロバイトのようです。後でファイルをチェックすると、実際に正しいデータが含まれていることがわかります。ファイルを開く方法によって、ファイルへの早期アクセスを防ぐことができると思いました。
DOSコマンド'copyInFile_0 * dropdir'(実行ごとに約100ファイル)を使用してファイルをディレクトリにコピーすることでこれをテストしています。おそらく、このコマンドは2つのステップでコピーを実行します:1)スペースの割り当てと2)スペースの塗りつぶしプログラムは時々2つの途中でジャンプします。
これを信頼できるようにコーディングする方法について何かアイデアはありますか?
更新: 私はライティングプログラムを制御できません-それは何でもかまいません。防御的にコーディングする必要があるようです。
c# - .netでファイルをロックして、自分のアプリだけがファイルにアクセスできるようにするにはどうすればよいですか?
ファイルロックに関するクエリを読みましたが、複数のファイルアクセスの問題などを参照しています。これに対する通常の応答は、FileStream.Lockを使用してファイルにロックするか、FileShare.NoneをFile.Openで使用するなどですが、ロックすると100ファイルと表示されます。これは良いプログラミング手法ではありません。また、これらのシナリオでは、アプリが閉じたりクラッシュしたりした場合にロックが解除されます。つまり、ロックを保持し、自分のアプリだけが他の人のために開くことができます。
msdnで、System.Security、System.Security.AccessControl名前空間を見つけました。これらが役立つと思います。また、この記事では、私が欲しいものに光を当てます。
編集::
Mannnnn...誰かが私が提供した「この」 リンクを参照しましたか。
わかりました...要するに、私はPCセキュリティソフトウェアが行うことをしたいのですが、それはベルを鳴らしますか...誰かがそれを使用しましたか????
ありがとう。
c# - 別のプロセスで使用されているファイルを削除するにはどうすればよいですか?
ファイルを削除しようとすると、次の例外が発生します。
別のプロセスで使用されているため、プロセスはファイル '' にアクセスできません。
私のコードは次のようになります:
どうすればこの問題を解決できますか?
windows - Windows でフォルダのプロセス排他ロックを取得する方法は?
Windowsでディレクトリをロックして、ロックの期間中、他のプロセスがディレクトリ内のファイルを読み取ったり変更したりしないようにすると同時に、ロックされたプロセスがファイルとディレクトリを変更および移動できるようにすることは可能ですか?それ自体自由?
file-locking - 2つの異なるプログラムが同じファイルに同時に書き込もうとするとどうなりますか?
2つの異なるプログラムが同じファイルに同時に書き込もうとするとどうなりますか?
プログラムの1つでファイルロックエラーが発生しますか?
このシナリオを処理するためにプログラムをどのように設計する必要がありますか?
python - Python で Windows ファイルを RW ロックして、1 晩あたり最大 1 つのテスト インスタンスを実行する
Python でカスタム テスト ハーネスを作成しました (カスタム ロジックが多いため、既存のものは適切ではありませんでした)。Windows タスク スケジューラは、毎日 1 時間に 1 回それを開始します。テストの実行に 2 時間以上かかり、さらに成長しているため、問題が発生しています。今はシステム時刻を確認するだけで、 以外は何もしませhour % 3 == 0
んが、それは好きではありません。次の内容を含むテキスト ファイルがあります。
手動でテストを開始すると、12:59:59.99 など、いつでも発生する可能性があります。競合状態を可能な限り排除したいと考えています。私はむしろ、何かが起こる実際の可能性について心配するのではなく、一度余分な努力をしたいと思います. したがって、このテキスト ファイルをアトミックにロックすることが最善の方法だと思います。
Python 2.7
、Windows Server 2008R2 Pro
およびを使用してWindows 7 Pro
います。私は余分なライブラリをインストールしたくありません (Python
まだ同僚に「販売」されていませんが、ライセンスで許可されていれば、すべてを実装するファイルをローカルにコピーできます)。
したがって、これを解決するための優れた防弾方法を提案してください。
c# - ファイルの複数のコピーが WPF アプリで開かれないようにする
XML ファイルを開いて編集する WPF アプリがあります。現在、アプリは複数回起動でき、複数のインスタンスで同じファイルを開くことができます。ファイルが開いているときに、アプリの別のインスタンスがファイルを開くことができないように、ファイルをロックする必要があります。ファイルを開くときに FileShare.None 属性と FileStream.Lock() を使用しようとしましたが、何らかの理由で、アプリの別のインスタンスがファイルを開くのを防ぐことができません。
編集:関連コード
php - 書き込みのためにMysqlによって開かれたファイルは、phpからの読み取りを許可されるべきではありません
を使用して、Mysql から出力フォルダーに通常のデータを書き込む必要があります。
select * into outfile 'filename' from table...
これらのファイルを読み取り、バックアップにアップロードするphpで書かれたcronjobがあります。
私の心配は、MySql によってまだ書き込まれているファイルを読み取ろうとしない可能性があることです。
私の質問は次のとおりです
。1)そもそも可能ですか?
2) この場合、何らかのロック機構を使用できますか? はいの場合、どのロック機構を使用できますか?
flock を使用して別のファイルによってデータが書き込まれる問題を解決しています。
ありがとう
java - 単一の JVM 内および複数の JVM 間での Java ファイル ロックの使用
私は何かが欠けていると思いますが、Java でファイル ロックがどのように機能するかを理解できません。より正確に言えば、それがどのように実装されているかです。
単一の JVM 内の同じファイルに対して 2 つ以上のロックを取得できない (取得しようとすることさえできない) ようです。最初のロックは正常に取得されます。さらにロックを取得しようとすると、OverlapingFileLockException が発生します。それにもかかわらず、それは別々のプロセスで機能します。
複数の同時要求(読み取りと書き込みの両方)で動作することを目的としたファイルシステムに基づくデータストレージを実装したいと考えています。ファイル ロックを使用して、ストレージ内の特定のファイルをロックしたいと考えています。
この例外を回避するには、JVM レベルでもう 1 つの同期 (排他的) を導入してから、ファイルを同期する必要があるようです。
誰かがそのようなことをしましたか?
私の問題が何であるかを示すために、簡単なテストケースを用意しました。Mac OS X、Java 6 を使用しています。
.net - ファイルのロックを保持しているスレッドを特定できるデバッグ ツール (存在する場合) はどれですか?
IOException
別のプロセスで使用されているため、ファイルを削除できないことに注意して、定期的に を発生させるテストをデバッグしています。プロセスは確かに私のテスト ハーネスであり、プロセス内の他のスレッドは、期待したときにそのファイル リソースを破棄していないのではないかと思います。
どのスレッドが妨害ロックを保持しているかを判断するために使用できるツールはありますか? スレッドを特定できれば、そのコール スタックを調べて、少なくともリソースがまだ破棄されていない理由を特定することができます。SOS デバッグ ツールは有望に見えますが、私の調査からかなりの量の当て推量を取り除く機能は見当たりません。
1 つの考えとしては、ネイティブ OS スレッド ID を識別し、SOS を介してマネージド スレッド ID にマップすることができます。どうすれば前者を達成できますか?