我有一个程序(用 Python3.6 编写,使用 cx_Freeze 转换为 Windows 的 .exe),它使用锁定文件来标记当前是否正在使用用户登录,以允许在多台计算机上使用相同的登录同时避免可能的数据库损坏。
该文件在用户登录确认后立即创建(并在用户注销时删除):
lockfile = os.path.join(user_dir, ".locked")
with open(lockfile, "w") as _:
os.utime(lockfile)
在我的 Windows7 Professional 机器上,这工作正常。它在我本地的 Windows10 测试机上也可以正常工作。
现在,我有一个远程位置的客户正在尝试使用该程序。显然,他们一直得到一个 Permission Error: [Errno 13] Permission denied: '<user_dir>\.locked'。(它们的路径似乎是有效的,并且程序在创建user_dir 或向其写入config.ini文件时没有问题,因此对目录的写入权限应该不是问题。)
某些 Windows 版本可能对以点开头的文件有问题吗?可以使用下划线等代替吗?
客户端使用 Windows10 (Enterprise) 版本 1809 (Build 17763.379)。
(从这里很难调试,因为我必须在每次更改后重新编译安装程序,如果这有道理的话,我会很高兴......也欢迎任何其他关于潜在问题来源的想法!)