問題タブ [file-in-use]

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

c# - 別のプロセスで使用中のファイルを開く

別のプロセスで既に使用されているファイルを読み取るためのいくつかの解決策を見てきましたが、どれもうまくいかないようです。

読み取ろうとしているファイルは、抽出する必要がある構成設定を含む XML ファイルです。

これが私が試したことです:

これは他のほぼすべての人に有効なようですが、何が間違っているのかわかりません! 私のファイルは別の方法でロックされており、読み取ることさえできませんか?

大変助かりました!

デイブ

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

c# - プロセスによってファイルをブロックせずに、MemoryStream を使用して .jpg をロードしますか?

いくつかの文字列と画像がUIに表示され、データをテキストファイルと同じ名前の切り離された.jpgファイルに保存する一種のエディタがあります。

iam が .jpg ファイルをオーバーライドしようとするとFile.Replace、明らかに自分のアプリケーションのプロセスである別のプロセスによって画像がブロックされていると表示されます。

RAMで処理されるため、メモリストリームでこれを修正できることを願っています。だから私はすべてのjpgファイルをメモリストリームでロードしたいのですが、メモリストリームで何かをロードする方法がわかりません..

編集:基本的に、これに関するコードスニピットは次のとおりです。

そして、私は単純なリストにビットマップイメージとして内部に保存された写真を持っています:new BitmapImage(new Uri(f.FullName.ToString().Remove(f.FullName.Length - 4, 4) + ".jpg",UriKind.RelativeOrAbsolute))

これが問題をよりよく理解するのに役立つことを願っています

編集 2: 画像をロードするために次のことを行っています。

しかし、上書きしようとしているThe Pictrueは、すでに別のプロセスで使用されていると私に言い続けています。

編集3:私はペニーペットのソリューションを使用しようとしましたが、ロックされたファイルに同じ問題があり、これで終わりました:

PenniePet の投稿の GetImageFromByteArray メソッドを参照してください。

最終編集:

それは完全に私のせいで、本当に恥ずかしい思いをしました。別の時点で画像を読み込んでいたことを忘れていました。私はそれを修正したので、ロックされた問題はもう存在しません。

PenniePete の Awnser を正しいものとして選びました。これは、私が最後に試したものであり、現在使用しているためです。また、彼は私の失敗に目を向けました。

他の人が怒らないことを願っています。ご協力いただきありがとうございます。

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

android - Android は、ファイルへの他のプロセスの書き込みを検出します

私の Android アプリは、ユーザーが Web ブラウザーを使用してダウンロードするファイルを使用します。

(はい、Android アプリがユーザーを Web ブラウザーに送信せずにファイル自体をダウンロードできる方法があることは知っています。ファイルは Microsoft の OneDrive クラウド ストレージにホストされているため、このアプリではダウンロードできません。また、はい、それを行うことができる OneDrive API があることは知っていますが、API がファイルをダウンロードする前に、ユーザーが OneDrive パスワードを知る必要があることを理解しています。)

ブラウザがまだファイルをダウンロードしている間、アプリがファイルを開こうとするのを防ぎたいです。

FileChannel.tryLock() を使用してファイルの書き込みロックを取得しようとしましたが、ブラウザがまだファイルをダウンロードしている間でもロックが許可されました。(どうやらロックは任意です。)

他のアイデアはありますか?ありがとう。

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

c# - 使用中のファイルをプログラムでコピーする

私の C# コードでは、別のプロセスで使用されているファイルをコピーするために、シャドウ コピー メカニズムを使用できるようにしたいと考えています。

私は、ソリューションが Web、エンタープライズ ツール、またはコマンド ライン ツールに存在することを見てきました。しかし、単純なファイルのコピーを模倣するために、プログラムで実行できるでしょうか?

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

java - プロジェクトが Visual Studio で既に開いているかどうかを確認する

Java アプリから Visual Studio ソリューションを開く必要があります。この VS プロジェクトを開く前に、まだ開いていないことを確認したいと考えています。

私は2つの解決策について考えました:

1 つ目は、VS .sln ファイルが別のプロセスによってロックされているかどうかを確認することです (この質問への回答を参照してください)。このソリューションの問題は、誰がファイルをロックしているのかわからないことです。メモ帳、ファイルエクスプローラー(コピー時)などの他のアプリケーションである可能性があります。

2. 実行中の VS プロセスを見つけて、この特定のソリューションが引数としてそれらのいずれかに送信されたかどうかを確認します (VS によって開かれたことを意味します)。コードは次のとおりです。

問題は、このwmicコマンドの出力が次の形式であることです。<devenv.exe path> <VS project path>この VS プロジェクト パスは、ソリューション ファイルではなくプロジェクト ファイルなどを参照する相対パスにすることができます。たとえば、プロジェクトC:\Users\username\My Documents\Visual Studio 2012\Projects\ProjectName\ProjectName.slnとコマンド ラインを開く必要がある場合は、 wmic は"<devenv.exe path>" "C:\Users\username\Documents\Visual Studio 2012\Projects\ProjectName\ProjectName.vcxproj"、両方のパスが同じ VS プロジェクトを参照していますが、それはわかりません。

編集: Visual Studio が開いているときにソリューション ファイルをロックしないことがわかったので、最初のソリューションは適用できません。以下のコメントでわかるように、VS 内で開いたり閉じたりしたプロジェクトが正しく表示されないため、2 つ目はオプションではありません。だから私は別の方法が必要です。

何か案が?

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

c - ファイルを削除しようとすると、アクセス許可が拒否されたというエラーが表示されます

みなさん、はじめまして。

私の問題は、私のプログラムが別のプログラムによって読み取られるファイルを作成し、その後私のプログラムがファイルを削除する必要があることです。

以下のコードを使用して、ファイルが存在するかどうか、および他のプログラムがそのファイルを使用しているかどうかを確認します。その後、ファイルを削除したい:

問題がどこにあるのか、誰にも分かりますか。興味深いことに、これは他のファイルでも機能します。また、foo.txt特別なアクセス権なしでこのプログラムによって作成されます。

ありがとう :)