質問

使用言語:C#

理論:作りたいファイルのフラグ FileOptions.DeleteOnClose 一時フォルダにまとめた。のファイルを作成してdatoに乗ることで次のステップでは、アプリケーションを起動し、ファイル Process.Start(...) ることのできるユーザの検査は、最後に私があり扱いなどの他のプロセスの取扱いの一時ファイルのファイルによって削除されます。

私の問題は、他のプロセスできないファイルを開き、読書がいの追加 FileShare.ReadWrite | FileShare.Delete の共有モードになります。

ご意見募集

役に立ちましたか?

解決

他のプロセスは、彼らがFileShare.Deleteファイルを開いたときDeleteOnCloseを指定する必要があります。

MSDNのCreateFile のドキュメントます:

  

FILE_FLAG_DELETE_ON_CLOSE ... FILE_SHARE_DELETE共有モードが指定されていない限り、ファイルに対する後続のオープン要求は、失敗します。」

他のヒント

これをチェックします:

あなたはすべてのプロセスがFileShare.ReadWriteとFileShare.Deleteでファイルを開いていることを確認する必要があります。

2番目のプログラムは、株式に読み、2番目のプログラムは、基本的には他に誰が書き込むことはできませんと言っているで開くしようとすると、

作成者は、株式読み書きで開く場合であっても。第二のオープンに失敗したように、しかし、最初のプログラムは、すでにその力を持っています。

スイッチをLinux scnr

Ok、真剣に現:これは欠陥のWindowsオペレーティングシステムができないのとする。各プログラムファイルのオープンにおけるその他のプログラムのファイルを開く"でも同時に行います。この問題であったたくさん決めることができました年がまだまだWindowsを使用しています。ません。開ファイルと言う:もう誰も開くことができます。その他の要ともいえるこのファイルの場合でも開いておりますのです。

Linuxの場合、逆に、経営システムのできないファイルのロックをWindowsいます。ここで、該ファイルを使用複数プログラムを同時にプログラムを作らなければならず、並行アクセスを取得しロックされます。また、Linuxの場合、できるだけでファイルを作成してくださいその他の処理が開始されたとのファイルを削除するファイルが実行されます。ファイル名はファイルからシステムimmediatellyが、ファイルが維持されているファイルシステムドライバー最後の最後までリンクを含むファイルを開く取り扱う)を除去します。

お金の問題すべてのこdoenなWindowsができるようにな二つのアプローチ:

  1. 登録するファイルを削除起動時に自動的にインストー(Win3x日があったのです。iniです。新しいWindows版も応援、どうしたらいいでしょうかんリコールなどで行われます。
  2. Startのプロセス、そのファイルのファイルとその各分を削除するまでファイルの削除に成功し...

おぺ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top