Я пишу приложение, которое должно копировать файлы из сетевого каталога, в котором в данный момент исполняются файлы.Копирование исполняемых файлов с пути UNC
Я попытался открыть файл с
using (var source = new FileStream(fileData.FileName,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
После того как я открыть файл потока я создаю еще один поток, чтобы скопировать в.
Однако это исключает исключение, что файл используется другим процессом. Я не уверен, как обойти эту проблему. Если я просто использую проводник файлов, он скопирует файлы в порядке. Поэтому я знаю, что это возможно, просто не знаю, как это сделать.
EDIT: Я также пробовал простой File.Copy(source, destination)
, и я получаю то же исключение, говоря, что файл используется другим процессом.
Служба теневого копирования томов может помочь вам: http://www.codeproject.com/Articles/22745/Volume-Shadow-Copies-from-NET – k0stya
Какая ОС является сетевым файловым сервером и клиентом, и вам нужно поддерживать любые другие версии ОС с обеих сторон? Я спрашиваю, как [SMB VSS] (http://technet.microsoft.com/en-us/library/jj612865.aspx) доступен в Windows 2012 и будет хорошим решением для вас. –
Настройка - это однородная настройка сервиса с Windows Server 2008 на всех машинах. – btlog