我一直在使用 VSS 编写备份程序,并从 Windows SDK 6.1 示例中的 VSHADOW.EXE 着手。它通常有效,但我惊讶地发现某些文件仍然锁定在它创建的卷影副本中,例如
C:\Users\Felix\NtUser.dat
C:\Users\Felix\NtUser.dat.log1
C:\Users\Felix\AppData\Local\Microsoft\Windows\UsrClass.dat
C:\Users\Felix\AppData\Local\Microsoft\Windows\UsrClass.dat.log1
...
访问卷影副本中的这些文件(使用 CreateFileEx
、CopyFileEx
或使用 Total Commander 或任何其他工具)通常给我一个错误 32(进程无法访问该文件,因为它正被另一个进程使用)。它似乎是任意发生的。怎么可能?
我之前的编辑(事件日志消息)原来不是这个问题的核心,因为我修复了它但没有帮助。
最佳答案
有问题的文件原来是指向其他锁定文件的符号链接(symbolic link)。卷影副本中的各个文件也是符号链接(symbolic link),指向原始硬盘上的锁定文件。要解决这个问题,必须解析符号链接(symbolic link)并找到它指向的文件,然后这个文件必须位于卷影副本中。
关于windows - Microsoft VSHADOW.EXE 卷影副本包含锁定的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407954/