2
我在Mac上有一個客戶端 - 服務器應用程序。客戶端上傳文件並且服務器下載文件。 Sever從客戶端讀取特定大小的字節並寫入文件。但在中間用戶可以使用Finder上下文菜單或從終端刪除文件。我想停止任何其他應用程序對此文件的任何寫入/執行操作,直到下載運行。在Windows上創建文件時,可以使用FILE_SHARE_READ輕鬆完成。但是我們如何才能在Mac上實現相同的功能?如何在Mac上下載期間停止刪除文件
我試過在Mac上的諮詢鎖,但沒有運氣。如果進程A在文件上使用顧問鎖,那麼進程B不能訪問它,但我總是可以使用Finder上下文菜單刪除文件。
這是一個多線程程序。當數據可用並寫入文件然後關閉文件句柄時,它會以追加模式打開文件。用戶可以一次上傳多個文件。 – Prince 2012-03-08 15:11:42
當用戶選擇上傳文件時,您打開文件,不是嗎?無論用戶是否刪除它,您都可以從該文件讀取,直到關閉它爲止。 – Jim 2012-03-08 15:13:10
是的,我們可以讀取文件,沒問題。讓我來澄清一下這個案子。我使用Macfuse掛載文件系統,用戶將文件上傳到此文件系統。當上傳完成後,用戶應該看到文件系統中的文件,但是如果用戶在上傳過程中刪除了該文件,那麼當下載完成時,我的應用程序無法將其顯示到文件系統,因爲它已經進入垃圾箱。 – Prince 2012-03-08 15:24:37