目前,我正在使用Dokan在Windows上包装我的文件系统
从Python3.7开始,os.path
实现了一个samefile
函数,implement如下:
# Are two stat buffers (obtained from stat, fstat or lstat)
# describing the same file?
def samestat(s1, s2):
"""Test whether two stat buffers reference the same file"""
return (s1.st_ino == s2.st_ino and
s1.st_dev == s2.st_dev)
# Are two filenames really pointing to the same file?
def samefile(f1, f2):
"""Test whether two pathnames reference the same actual file"""
s1 = os.stat(f1)
s2 = os.stat(f2)
return samestat(s1, s2)
您可以查看代码详细信息here
在这种情况下,我们需要确保这两个文件没有相同的st_ino
和相同的st_dev
,以便从一个复制到另一个
在python的doc中,属性st_ino
是Windows上的文件索引(如果非零)
所有这些在普通文件系统上都可以正常工作,但在Dokan上就不行了
当我使用Dokan包装我的文件系统(在linux上使用FUSE)时,使用ino配置对于Dokan来说是不可能的,但是我没有找到任何替代品
>> os.stat("D:\\test\\data\\test\\test.xml")
os.stat_result(st_mode=33206, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=457, st_atime=1555481019, st_mtime=1555481019, st_ctime=1)
两者都是0
是python错误还是Dokan实现出了问题
目前没有回答
相关问题 更多 >
编程相关推荐