首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试fsync目录时出错

尝试fsync目录时出错
EN

Stack Overflow用户
提问于 2014-12-31 00:35:46
回答 2查看 875关注 0票数 1

我正在尝试fsync一个目录,以确保执行重命名操作。我遇到的问题是,即使我对我尝试过的各种文件夹拥有完全权限,Python仍然返回权限错误。

代码语言:javascript
复制
directory = r'C:\Random\Path'
os.access(directory, os.W_OK)
os.access(directory, os.X_OK)
os.access(directory, os.R_OK)
True, True, True

fd = open(directory)
os.fsync(fd)
IOError: [Errno 13] Permission denied: 'C:\\Random\\Path'

是我做错了什么,还是有更深层次的原因?

EN

回答 2

Stack Overflow用户

发布于 2016-06-23 09:38:32

内置的open()与os.open()不同。os.open()返回一个文件描述符(一个整数),但open()不返回。os.open()可以打开目录(至少在Linux上可以,我还没有尝试过Windows),但是open()不能。

票数 2
EN

Stack Overflow用户

发布于 2014-12-31 05:39:33

未执行fsync()调用。错误来自open()。为什么?因为您无法在Windows上打开目录。*

此行为为documented in MSDN

EACCES

试图打开一个只读文件进行写入,文件的共享模式不允许指定的操作,或给定的路径是一个目录。

(强调我的)。EACCES被拒绝权限;它正被用作compatibility reasons的通用“你不能这样做”错误。

*具体地说,您不能使用POSIX子系统打开目录;可以使用CreateFile在Windows上打开目录,但这会给您提供一个根据this list无法传递给FlushFileBuffers的句柄,因此这仍然是不可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27709093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档