objective-c - 如何在 Mac 上下载时停止删除文件

标签 objective-c macos cocoa

我在 Mac 上有一个客户端服务器应用程序。客户端上传文件,服务器下载文件。 服务器从客户端读取特定大小的字节并写入文件。但在中间,用户可以使用 Finder 上下文菜单或从终端删除该文件。我想停止任何其他应用程序对此文件的任何写入/执行操作,直到下载运行。在 Windows 上创建文件时,可以使用 FILE_SHARE_READ 轻松完成此操作。但是我们如何才能在 Mac 上实现同样的功能呢?

我在 Mac 上尝试过咨询锁,但没有成功。如果进程 A 对文件使用咨询锁,则进程 B 无法访问该文件,但我始终可以使用 Finder 上下文菜单删除该文件。

最佳答案

您确定需要这样做吗?只要您有一个打开的文件句柄,即使文件被删除也没关系,您仍然可以从中读取数据,直到您关闭文件句柄。如果用户在传输过程中删除文件,也不会阻止您发送完整文件。

关于objective-c - 如何在 Mac 上下载时停止删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9616026/

相关文章:

macos - 准备助手后 install4j 安装程序在 OS X 上挂起

objective-c - CGContextDrawImage 泄漏

objective-c - NSNumber 的 @property 属性?

objective-c - 在 Objective-C 中使用 GCC __unused 属性

macos - 为什么升级到 XULRunner 33 后,我无法在 Mac OS X 10.9 上 Cmd-Tab 到我的应用程序窗口?

在 Mac 上连接 .dmg 文件的 C++ 库

cocoa - 确定所有控件是否都能获得焦点(即成为第一响应者)

objective-c - mouseDragged 未在 NSView 的框架外调用

ios - 在 NSView 层上设置仿射变换不像在 iOS 上那样工作

objective-c - NSOpenPanel 在全屏 NSWindow 之上?