2011-03-11 106 views
1

我正在制作一个数据备份程序。我需要将文件从一个文件夹复制到另一个文件夹,而某些文件仍然由正在运行的进程使用。当正在运行的进程共享文件访问时没关系。但如果文件不共享,我会得到例外。 (FileShare.None)如何读取非共享文件

我想知道是否有任何方式来读取C#中的非共享文件。

感谢,引擎盖下

+2

如果该进程将数据写入锁定的文件,你想将它备份起来怎么办?不会写是腐败的,因为写作从未完成?我会说,如果该文件是非共享的,有一个原因... – Cipi 2011-03-11 21:24:41

+0

这是真的。但我想要备份的文件主要是用于读取(通过一些正在运行的进程)。所以我不会在意这一步太在意数据损坏。 – user648912 2011-03-11 21:53:24

+0

是否允许创建卷影副本和备份? – Gabe 2011-03-13 00:08:06

回答

0

C#使用操作系统提供的文件访问操作,包括文件共享行为。所以我害怕C#不能超越这个。

0

如果您使用Vista或更高版本,有一种技术。您可以使用卷影复制功能。但是,在C#中工作将是乏味的,我可以提供的所有帮助都是参考。但是,如果您想管理解决方案,而不是发展之一,您可以使用Windows备份按计划复制文件。

链接: