如何通过经常使用的网络复制文件?

Ang*_*ker 5 .net c# network-programming

我需要通过网络复制一个大文件(大约20 MB).通常情况下,这不是问题,但是,文件被与文件位于同一个框中的应用程序相当频繁地写入(大约每秒一次).

因为文件经常被写入,所以File.Copy调用经常失败.我也试过File.ReadAllLines这似乎每次都有效,但需要永远.

是否有更好,更有效,更安全的方式通过网络复制文件?

PS该文件由使用Log4Net的进程写入.并且,如果有人想知道,写作的过程不在我手中.

小智 1

您可以在打开文件时使用文件共享字段,以允许其他进程在您访问该文件时访问该文件,不幸的是,如果您的进程不是锁定该文件的进程,则您无法释放它,并且您已经提到过您不能更改进行写入的代码,通过在文件共享字段中允许读/写,您可以允许其他进程在复制文件时访问该文件。您可以编写一个小函数来检查文件是否被锁定并更改代码,以便在锁定时继续检查,直到文件解锁为止,然后复制它。