我正在尝试备份服务器上的文件,但其中一些文件正在使用中,无法打开。相反,如果当前副本正在使用中,我想打开它们的影子副本。我该如何做到这一点?
供参考,我正在使用C# .net 3.5。
我正在尝试备份服务器上的文件,但其中一些文件正在使用中,无法打开。相反,如果当前副本正在使用中,我想打开它们的影子副本。我该如何做到这一点?
供参考,我正在使用C# .net 3.5。
如果您控制第一个进程,则可以指定文件句柄共享类型。
string contents1;
string contents2;
using (FileStream fs1 = new FileStream("test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (var tr1 = new StreamReader(fs1))
{
using (FileStream fs2 = new FileStream("test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (var tr2 = new StreamReader(fs2))
{
contents2 = tr2.ReadToEnd();
contents1 = tr1.ReadToEnd();
}
}
}
}
Console.WriteLine(contents1);
Console.WriteLine(contents2);
Windows Vista "Time Warp": Understanding Vista's Backup and Restore Technologies
视频中介绍了一些实现细节和 API 结构。我记得他们提到了如何将阴影副本映射到文件系统中。