問題タブ [filelock]

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 投票する
4 に答える
10088 参照

windows - 「ロックされた」ファイル(書き込みロックがあるファイル)をシミュレートするにはどうすればよいですか?

ユーザーが開こうとしているファイルをロックしていることがあるという問題をデバッグしようとしています。コードには正しい例外処理があるように見えますが、ユーザーは依然としてエラーメッセージが表示されていると報告しています。これを自分でデバッグできるように、ロックされたファイルをシミュレートするにはどうすればよいですか?

編集:Windowsの場合。

0 投票する
4 に答える
13060 参照

c# - ロックされたファイルを含むFileStream

ロックされたファイルに読み取り専用のFileStreamを取得できるかどうか疑問に思っていますか?ロックされたファイルを読み込もうとすると、例外が発生するようになりました。

ありがとう!

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

java - 新しくロックされたファイルから読み取ることができません

それで、ファイルをロックして読み取ろうとしましたが、IOExceptionが発生しました。理由は何ですか?

そして私はこのエラーを受け取りましたIOException: The process cannot access the file because another process has locked a portion of the file

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

java - FileChannelを使用してInputStreamを書き込みますか?

InputStreamをFileChannelに書き込むことはできますか?

java.nio.channels.FileChannelを使用してファイルを開き、ロックしてから、InputStreamを出力ファイルに書き込みます。InputStreamは、別のファイル、URL、ソケットなどで開くことができます。私は次のコードを書きました:

ただし、outputChannel.transferFrom(...)の最初の引数は、ReadableByteChannelオブジェクトを要求します。InputStreamを入力として使用しているため、必要なチャネルを作成するためのinputStream.getChannel()メソッドがありません。

InputStreamからReadableByteChannelを取得する方法はありますか?

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

c# - ロックされたファイルにアクセスする C#

別のプログラムで作成され、まだ処理されている c# 経由でファイルにアクセスしたい。
現在、Windowsエクスプローラーを介してファイルを別の場所にコピーし、そのコピーで作業しています。コピーは大きいので、元のファイルをそのまま使用することをお勧めします。何か方法はありますか?
通常の FileStream では、共有アクセス モードは許可されません。私は両方のプログラムを管理しているので、必要に応じてライターも変更できます。

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

visual-studio-2010 - アセンブリは別のプロセスで使用されています

3.5 vs2008 を実行している WCF プロジェクトを .net 4.0 vs2010 にアップグレードしたところ、問題が発生しました。vs2010 からコンパイルすると、サービス実装プロジェクトのアセンブリが devenv.exe によってロックされます (デバッグは行わないことに注意してください - コンパイルのみ)。アセンブリは、vs2010 の再起動時にリリースされ、再起動するたびに 1 回コンパイルできます。私がこれまでに試したこと:

  1. PreBuild イベントを挿入してアセンブリのロックを解除する
  2. アセンブリ バージョンのワイルド カードを削除しました
  3. ソースステッピングの無効化
  4. Windows検索を停止しました
  5. IIS を停止しました
  6. vs2010 を終了し、sln.suo と bin/obj フォルダーを削除しました
  7. ブログと SO の投稿を 3 日間読んでください :)
  8. サービス プロジェクトからすべての参照を削除し、再度追加しました

私はほとんどアイデアを使い果たしました.Microsoftはこれについて説明がなく、修正されていないようです. どんなアイデアでも大歓迎です!

エラーメッセージ:

ファイル ".....some path...\Debug\HelperLibrary.Service.dll" を "bin\Debug\HelperLibrary.Service.dll" にコピーできません。別のプロセスで使用されているため、プロセスはファイル 'bin\Debug\HelperLibrary.Service.dll' にアクセスできません。

おまけ情報: msbuild でプロンプトからコンパイルする場合、問題はありません。vs2010 からコンパイルする場合のみ。もちろん、古い vs2008 ソリューションも引き続き機能します。

Microsoft チケット: https://connect.microsoft.com/VisualStudio/feedback/details/682485/use-of-testaccessor-and-impl-of-codeaccesssecurityattribute-locks-assembly

0 投票する
5 に答える
17119 参照

printing - ロックされているプリンター スプール シャドウ ファイル (.SHD) を開くにはヘルプが必要です

Windows 印刷スプール ディレクトリ "C:\Windows\System32\spool\PRINTERS" 内にあるシャドウ ファイル (.shd) 内の情報に興味があります。印刷ジョブが開始されるたびに、スプール ファイル (.spl) とシャドウ ファイル (.shd) がそのディレクトリに作成されます。これまでのところ、印刷ジョブがいつ開始されたかを検出することに成功し、その印刷ジョブを一時停止することができました。ジョブを一時停止しないと、ファイルは最終的にプリンターに送られ、Windows によって削除されます。

私の問題です。.SHD ファイルは、sprint スプーラーで開いている間は読み取れないようにロックされているため、開くことができません。Windowsエクスプローラーでファイルにアクセスして、そのファイルを別のファイルにコピーしようとしましたが、それもうまくいきませんでした。ただし、開くことができる .SPL スプール ファイル。待つだけで、すぐにスプーラがそのファイルをリリースします。ただし、シャドウ ファイルの場合は、このファイルを永続的に保持します。残念ながら、それは私が必要とするものです。

ファイルを開くために特に使用しているコード行は次のとおりです。

私が得る IOException は次のとおりです。

別のプロセスで使用されているため、プロセスはファイル 'C:\Windows\system32\spool\PRINTERS\FP00083.SHD' にアクセスできません。

はい、別のプロセスで使用されています。ウィンドウの印刷スプーラ サービスによって使用されています。しかし、それについて私にできることは何もないと思います。私がしたいのは、ファイルを読むことだけです。私はそれを変更したくありません。ここで私にできることはありますか?

0 投票する
0 に答える
561 参照

windows - WindowsXPでの次回のシステム起動時にファイルの置き換えをスケジュールする

コンピューターで32ビットのWindowsXPマシンを実行しています。最近、Watson Postmortem Debugger博士がクラッシュし、閉じる必要があることを示すエラーがときどきポップアップすることがわかりました。この時点ですべてのGUIがスタックしているため、動作させるには手動でシステムを再起動する必要があります。

そのため、エラーログを確認したところ、次のことがわかりました。

次に、次のコマンドを使用しました。次のよう regsvr32 c:\windows\system32\dbghelp.dllなダイアログボックスが表示されました。

c:\windows\system32\dbghelp.dll was loaded,but the DllRegisterServer entry point was not found. This file can not be registered. そのため、dbghelp.dllファイルが破損しており、変更する必要があると考え、インターネットからファイルの別のコピーをダウンロードしましたが、ファイルのさまざまなロックのため、オペレーティングシステムでこのファイルを置き換えることができません。

次のコマンドでスケジュールされたタスクを使用して、次のシステム起動用にバッチファイルをスケジュールしようとしました copy /Y j:\security_updates\dbghelp.dll c:\windows\system32\ が、これも機能しないようです。次回のシステム起動時にこのファイルを置き換えるにはどうすればよいですか?

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

java - Java FileLock:ロックされたファイルからダイナミックライブラリをロードする方法は?

バックエンドサーバーからバイト配列を取得するアプレットがあります。このバイト配列にはダイナミックライブラリ(アプレットが実行されているOSに応じてDLLまたはSO)が含まれており、ディスクに書き込んだ後、System.load()を呼び出してディスクからロードする必要があります。

ファイルがディスクに書き込まれた後、System.load()の呼び出しを通じてOSによってロードされる前に、ファイルが改ざんされていないことを確認する必要があります。ファイルがディスクに書き込まれているときにファイルの排他ロックを取得しますが、テストでは、System.load()を呼び出す前にこのロックを解除する必要があることが示されています。そうしないと、ライブラリの読み込みに失敗します。

ファイルをロードしている間、ファイルのロックを維持する方法はありますか?

サンプルコード:

どんな助けでも大歓迎です。ソリューション(存在する場合)は、OSにネイティブである必要はありませんが、Javaでサポートされているすべてのプラットフォームで機能します。また、ソリューションがJava1.4と互換性があることも要件です。

0 投票する
0 に答える
236 参照

linux - fcntlレコードロックはマルチスレッドで機能しますか?

fcntl関数を使用してマルチプロセスレコードロックをテストします。現在のリクエストでは、スレッド間でレコードロックを使用する必要があります。テストしましたが、思ったとおりに動作しません。マルチスレッドのレコードロックについて何か提案はありますか?