在 IsDirectoryWritable() 之前使用 IsDirectory() 验证路径是否存在。 如果目录不存在(拼写错误等),IsDirectoryWritable 报告 false,而不是错误。 IsDirectory() 对于名称错误报告 false。 可能是驱动器映射问题?
在我的快速测试中,该函数似乎是在测试 Windows 权限,而不是实际进行端到端测试。 对于连接到 VirtualBox 的 Linux 驱动器,无论 Linux 权限如何,它始终报告 true(可写)。
这是我所看到的:
User PermissionsUser Permissions用户权限
Admin PermissionsAdmin Permissions管理员权限
我以用户身份运行,而不是管理员身份运行,没有写权限的文件夹有 isDirectoryWritable==false。
最后:有一个我认为不涉及的古老选项:
Directories don't really have a read-only attribute.Directories don't really have a read-only attribute.目录实际上没有只读属性。
该方块是第三种状态,既不是选中的也不是未选中的。
https://superuser.com/questions/1580751/folders-created-with-read-only-attribute-and-i-cannot-remove