[英]Get file's Previous Versions, from WINAPI
在Windows 7中,有可能获得文件的先前版本,如下图所示:
有没有办法按代码检索文件的先前版本? 因为我找不到任何API。
谢谢先进! =]
此问题列出了几个标签。 因此不清楚是否需要严格的c / c ++方法,或者脚本等是否有效。 任何状况之下...
以下是一些有希望指向正确方向的链接:
经过一番搜索,感谢@ryyker和@Ben的指示,我找到了答案:
例如,对于file:C:\\ SomeFolder \\ SomeFile.exe
从cmd(以管理员身份运行):
vssadmin list shadows for=C:\
对于程序化解决方案,您可以运行它:
CreateProcessW(NULL,L"cmd.exe /c \"vssadmin list shadows for=C:\\ > C:\\someTmpFile.txt\"",...);
读取并解析创建的文件。
在上面,您将获得卷影副本列表(“早期版本”容器的种类)。
请参阅相应的“卷影复制卷”行(您需要的版本)并在卷名后附加剩余的文件路径:
\\ Previous version path = \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\SomeFolder\SomeFile.exe"
wchar_t* prevPath = L"\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy3\\SomeFolder\\SomeFile.exe";
现在,您可以使用众所周知的WIN32API函数CreateFile和ReadFile来读取该文件。 (从MSDN创建和读取文件示例: 示例 )
确保使用该函数的UNICODE版本,因为ASCII版本可能缺少对“\\?\\”路径的支持。
祝好运! =]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.