【问题标题】:How is it possible to check with the filesystem api, if a file is read only?如果文件是只读的,如何检查文件系统 API?
【发布时间】:2022-07-15 17:30:17
【问题描述】:

我想使用新的std::filesystem api 检查文件是只读还是可写,可能不需要实际打开它。

我找到了documentation about permissions,其中包含有关如何查询特定文件的所有者/组/其他读取/写入/执行权限的示例代码。

如何找出运行程序的用户的读取权限?

其他进程也可能锁定文件,这也可能使其不可写。

有一个similar question,但答案使用的是C api,我想避免。

【问题讨论】:

  • 如果您想要检查锁等详细信息,您只需尝试打开它 - 任何提前的答案都可能在您依赖它时已经过时。
  • 您应该指定操作系统和文件系统。在 Linux 或 FAT 上,其他进程可能不会锁定文件。
  • 我正在寻找一个 closs 平台解决方案。如果没有其他办法,那么我可以打开文件

标签: c++ filesystems c++17 boost-filesystem


【解决方案1】:

是的,是的。 阅读this文档了解详细信息。

这是一个相同的小sn-p:

(std::filesystem::status(file_path).permissions() & std::filesystem::perms::owner_read != std::filesystem::perms::none) 

如果 val 为真,那么它是可读的。

【讨论】:

    猜你喜欢
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 2012-03-11
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多