2012-03-08 13 views
2

Macにはクライアント/サーバーアプリケーションがあります。クライアントはファイルをアップロードし、サーバーはファイルをダウンロードします。 Severは、クライアントから特定のサイズのバイトを読み取り、ファイルに書き込みます。しかし、中間のユーザはFinderのコンテキストメニューや端末からファイルを削除することができます。私はダウンロードが実行されるまで、他のアプリケーションからこのファイルの書き込み/実行操作を停止したいと思います。 Windows上でファイルを作成するときに、FILE_SHARE_READを使用して簡単に行うことができます。しかし、Mac上で同じ機能をどのように実現できますか?Macでダウンロード中にファイルを削除する方法を停止する方法

私はMac上で助言ロックを試みましたが、運はありません。プロセスAがファイルのアドバイザリロックを使用する場合、プロセスBはプロセスにアクセスできませんが、Finderのコンテキストメニューを使用してファイルを削除できます。

答えて

0

本当に行う必要がありますか?開いているファイルハンドルを持っている限り、ファイルが削除されても問題はありません。ファイルハンドルを閉じるまで、ファイルを読み込むことはできます。ユーザーが送信中のファイルを削除しても、完全なファイルの送信が停止されることはありません。

+0

マルチスレッドプログラムです。データが利用可能なときに追加モードでファイルを開き、ファイルに書き込み、ファイルハンドルを閉じます。ユーザーは一度に複数のファイルをアップロードできます。 – Prince

+0

ユーザーがファイルをアップロードすることを選択すると、そのファイルを開きますか?ユーザーがファイルを削除するかどうかにかかわらず、ファイルを閉じるまでそのファイルから読み取ることができます。 – Jim

+0

はい、ファイルを読むことはできますが、問題はありません。ケースをクリアしてみましょう。私はMacfuseを使ってファイルシステムをマウントし、ユーザーはこのファイルシステムにファイルをアップロードします。アップロードが完了すると、ファイルシステム内のファイルが表示されますが、アップロードの途中でユーザーがファイルを削除すると、ダウンロードが完了すると、既にファイルシステムにファイルシステムが表示されません。 – Prince

関連する問題