是否有一种便携式(std :: filesystem)方法来测试文件是“锁定”还是具有“只读”权限?例如,MacOS Finder的“锁定”设置与标准POSIX“权限”不同。
在尝试执行删除操作之前,我需要测试是否可以删除文件。理想情况下,我希望避免打开文件进行R / W测试。
这是在“保存/重命名”过程中,并且(至少在过去的MacOS文件系统中),即使“文件”在Finder中被“锁定”,OS调用“交换”两个文件也可以正常工作。由于围绕如何保存文件以及如何“保留”先前版本的复杂性,最好事先知道,以便避免操作。
进一步的注意:在具有读和写权限的LOCKED文件上,以R / W(std :: ios :: out | std :: ios :: in)格式打开流将失败,并且errno = 1(不允许操作) 。如果该文件是只读文件但未锁定,则它将以errno 13失败(权限被拒绝)。
这里讨论了MacOS(Cocoa)专用的测试锁定位的方法:
答案 0 :(得分:0)
好的-这可能不是准确的答案,但是看来您可以执行此操作(如建议的here:
/api/vendor/{id}
在我自己的代码中,我以更可靠的方式处理了retval错误。您也应该!
但是请注意:尽管此操作可以正确指示文件的Finder锁定位/标志的状态,但不能反映文件是否为“只读”。 UF_IMMUTABLE上的文档说“文件可能不会更改”-显然不准确。