問題タブ [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.
version-control - 共同コード編集
私は小さな Web 開発会社 (6 人) で働いており、新しいコード エディター/開発環境の市場にかなりの時間を費やしてきました。
現在、サイトの開発には Dreamweaver の (CS3) コーディング側を使用しています。各サイトのファイルは、Dreamhost ftp サーバーでホストされています。私たち 6 人全員が、リモート ftp サーバー上の同じ一連のライブ ファイルで作業しています。Dreamweaver には便利なファイル ロック機能があり、同じファイルにアクセスできないようにすることで、お互いの変更を上書きするのを防ぎます。
現在、この形式の開発により非常に迅速な開発が可能であり、物事を完了するのがいかに簡単であるかが気に入っています。しかし、私たちが気に入らないことはたくさんあります。その 1 つが Dreamweaver のコード エディターです。また、各サイトのコード履歴が不足していることも気に入りません。
同様のファイル ロック/ftp 機能を備えた Dreamweaver の優れた代替手段を知っている人はいますか?
そうでない場合、私たちのチームにとって最適なソース管理システムの構成を説明していただけますか? GIT、Mercurial、および Subversion を検討したいと考えています。新しいシステムは、理想的には次のようになります。
1)。異なるオペレーティング システムで複数の異なるコード エディターをサポートします。(Windows 第一選択)
2)。現在とほぼ同じくらい簡単かつ迅速にコードをプッシュできます。
3)。オフィス ネットワークの外でファイルを操作できるようにします。
4)。安価であること。
バージョン管理システムの使用方法について無知であることを示しているだけかもしれませんが、私たち一人一人が自分のコンピューターにテスト サーバーを配置し、すべてのサイトを独自のテスト データベースでセットアップすることは論理的ではないように思われます...非常に時間がかかる
私たちの問題に対するあなたの解決策は何ですか? 私は、Dreamweaver の最新バージョンにアップグレードしてそれを永久に使い続けるか、ある種の ftp 共同エディターを見つけるか、バージョン管理を実装する必要があると思います。
バージョン管理の利点は、コードをプッシュするために必要な余分な時間を上回っていますか?
com - VB6IDEがロードされたプロジェクトのDLLをロックしています
私はレガシーVB6コードを維持する責任があり、プロジェクトのCOMDLLのロックに関して厄介な問題に遭遇しました。(これをMyProjectおよびMyProject.dllと呼びます)
MyProjectをVB6IDEにロードすると、結果のバイナリ互換DLLMyProject.dllをコンパイルできます。次に、DLL(またはその他の問題)にフックする(クラシックASP)Webアプリケーションを実行できます。
そのため、COM DLLを再コンパイルしようとすると、「permissiondenied」エラーが発生します。次に、DLLのロックを解除するには、次の手順を実行する必要があります。
- 他のVB6IDEで開いている依存プロジェクトがないことを確認してください
- IISをリサイクルする
- ファイルが読み取り専用ではないことを確認します(ソース管理にチェックインした場合は、読み取り専用になることがあります)
- プロジェクトを閉じて、再度開きます。
多くの場合、これは問題を修正し、再コンパイルできるようにする最後のステップです。これは、VB6IDEが実際にロードされたプロジェクトのDLLをロックしていることを意味します。
私の同僚は、VB6プロジェクトがDLLのバイナリ互換性で動作する方法に関係していると説明しましたが、解決策を提案することはできませんでした。
他の場所での私の検索では、答えはほとんど得られませんでした。これに関連する検索クエリは、多くの無関係な回答を返す傾向があります(おそらく私は検索エンジンに間違ったことを尋ねています)。
Stackoverflowで見つけた最も近いものは、数年前のこの質問でしたが、実際には法案に適合していません。
誰かがこれを改善するかもしれない他の提案がありますか?
c - プロセスがファイルを操作しているときに、他のプロセスがそのファイルに書き込んだり削除したりしないようにするにはどうすればよいですか?
プロセスがファイルから読み取ろうとしている場合、他のプロセスがファイルに書き込んだり削除したりしないように、コード(C言語)からどのように確認しますか(ファイルを削除するためのシステムコマンドを含む)?
また、これはすべてのOS(Windows、Linux、Solaris、HP-UX、VxWorksなど)で実現できますか?
c# - Windows サービスからの書き込み用のロック ファイル
Windows サービスからの書き込みのためにファイルをロックしたいのですが、今のところロックを取得しようとしてもうまくいきません。ただし、同じコードがコンソール アプリケーションから機能します。
私が読んだことから、これは私のサービスで日和見ロックが有効になっていないためです。
レジストリ ハックに頼らずに、ファイルをサービスからロックしてファイルへの書き込みを防ぐにはどうすればよいですか?
ロックするコード:
ロックを解除するコード:
perl - Perlでのノンブロッキングファイルロックに使用するCPANモジュール
一度に1つのプロセスだけが実行されるようにしたい。したがって、jobAが実行されていない限り、jobBが実行されないようにします。
ロックを再試行する機能があれば素晴らしいので、それをコーディングする必要はありません。漠然とこのようなもの:
Perlでこれを行うための最良の方法は何ですか?これに適したCPANモジュールがあることを願っています。
javascript - JavaScript で scripting.filesystemobject を使用し、ロックされたファイルをチェックする
ActiveX ファイルシステム オブジェクトを使用して、Javascript の ini ファイルから読み取るコードがあります。
これは特に効率的ではありませんが、ファイル全体を配列に読み取り、変更を追加して書き戻すという仕事をします。
私が抱えている問題は、別のプロセスである C# XBAP アプリケーションが、この ini ファイルから (getprivateprofilestring を使用して) 読み取っていると同時に、JS で書き込もうとしている可能性があることです。
ファイルがロックされているか、その一部であるため、javascript が失敗し、毎回ファイル全体を書き戻そうとしているため、ファイルが破損したり、完全にクリアされたりします。
できれば、必要なのはファイルが JavaScript でロックされているかどうかを判断する方法です。書き込みは緊急ではなく、読み取りを最初に終了させたいからです。
ファイルにアクセスするこれら 2 つの完全に別個の方法を同期する方法を見つけることができないようです。
.net - FileStreamを使用してファイルロックを実装できますか?
コンストラクターを使用して、FileStream
一度に1つのプロセスのみがファイルにアクセスするようにすることはできますか?次のコードは機能しますか?
特に、FileMode.Create
アトミックWRTでの動作は他のプロセスですか?他に使うべきものはありますか?
編集:より具体的には、これは単一のマシンでローカルファイルを使用するMicrosoftCLRにあります。
python - ファイルが開かれないようにする
次の方法で CSV ファイルに書き込む Python ロガー スクリプトを作成しています。
- ファイルを開く
- データを追加
- ファイルを閉じます (これは変更を保存するために必要だと思います。ログ記録のたびに安全を確保するためです。)
問題:
このファイルは、Windows エクスプローラー (私は XP を使用しています) から非常に簡単にアクセスできます。ファイルを Excel で開いた場合、そのファイルへのアクセスは Excel によってロックされます。スクリプトがデータを追加しようとすると、明らかに失敗し、完全に中止されます。
目的:
Python を使用してファイルをロックし、ファイルへのアクセスをスクリプトだけに限定する方法はありますか? それとも、そもそも私の方法論が下手なのだろうか?
c++ - ファイルのロックを使用しても安全です。
ブーストファイルロック(共有可能およびスコープ付きのfile_locks)の一般的な戦略、および一般的なファイルロックは次のとおりです。
- 開いた
- ロック
- ファイルの内容を操作する
- ロックを解除
- ファイルを閉じる
ただし、追加用にファイルを開き、tellp を呼び出して現在の場所を確認したいと考えています。上記のシナリオでこれを行うのは安全ですか? ロックの前にファイルが開かれるとすぐにファイルポインタが設定され、保護されない可能性はありませんか? もしそうなら、これを回避するための標準的なイディオムはありますか?
delphi - Delphi7-書き込み中のファイルをコピーするにはどうすればよいですか
マスターPCで毎秒情報を毎日のテキストファイルに記録するアプリケーションがあります。同じアプリケーションを使用しているネットワーク上のスレーブPCが、このテキストファイルをローカルドライブにコピーしたいと考えています。ファイルアクセスの問題が発生することがわかります。
これらのファイルは、それぞれ30〜40MB以下である必要があります。ネットワークは100MBのイーサネットになります。コピープロセスに1秒以上かかる可能性があることがわかります。つまり、ログPCは、読み取り中に書き込み用にファイルを開く必要があります。
ファイルの書き込み(ロギング)とファイルのコピーの手順に最適な方法は何ですか?標準のWindowsCopyFile()プロシージャがあることは知っていますが、これによりファイルアクセスの問題が発生しました。fmShareDenyNoneフラグを使用するTFileStreamもありますが、これによってアクセスの問題が発生することもあります(1週間に1回など)。
これは、このタスクを実行するための最良の方法は何ですか?
私の現在のファイルログ:
私のファイルコピー手順: