如何访问备份程序的“锁定”文件

2024-05-16 20:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python创建一个类似googledrive的备份程序,该程序将备份到一个Linux设备,该设备将进一步备份到一个非现场位置tbd。在这方面我遇到了一些有趣的编码和计算机挑战。你知道吗

我现在正在处理的是“锁定”文件。那我说这个是什么意思?在Windows7中,如果您创建一个.txt文件,您可以在记事本(任何程序)中打开它,同时也可以在python程序中打开它。如果您在.txt文件中进行了更改并保存了更改,但在关闭它之前,您仍然可以在pythn中打开并查看更改。现在将文件更改为.docx windows文件并用word2007打开它。在word中打开时,在python中无法使用访问它,直到用户关闭它。你知道吗

现在如果你看一下googledrive,桌面上安装的不仅仅是web,你可以打开一个.docx文件并修改它。一旦你保存它,但在关闭之前谷歌驱动器已经同步文件。你知道吗

Google驱动器对文件的访问级别必须比简单的python低文件.open()命令。你知道吗

所以问题来了。有人知道用python访问文件的方法吗?这样我就不用等待用户关闭文件了。你知道吗

编辑1: 让我进一步解释。一旦我创建了一个包含所有文件和目录的sqlite数据库,我就会使用win32文件.ReadDirectoryChangesW()监视更改的功能。我的问题源于这样一个事实:当设置first install/run的应用程序时,它必须对所有文件进行编目,并且在windows office中打开的文件都被锁定,无法进行编目。有办法吗?你知道吗


Tags: 文件用户程序txt编码linuxwindows计算机
1条回答
网友
1楼 · 发布于 2024-05-16 20:17:24

许多备份工具都使用快照。然后,他们将直接从快照复制锁定的文件,而不是直接从文件系统复制它。如果您使用的是Windows,那么应该检查Windows VSS,有关详细信息,请参阅Microsoft documentation。否则,如果您所在的文件系统支持快照,请检查其文档。你知道吗

第三方工具

您可以使用subprocessPython模块运行第三方工具,这些工具将为您拍摄快照。你知道吗

微软VSS

如果您想自己完成,您可能需要来自Win32 API的模块,例如win32com模块。你知道吗

Github上还有一个项目似乎可以完成这个任务:pyshadowcopy

文件系统快照

根据文件系统的特性,您可能会发现允许您拍摄快照的python模块或工具。你知道吗

相关问题 更多 >