Пример (примечание: я только что объединил два результата Google, возможно, вам придется исправить незначительные ошибки;))
Важной частью является FileShare.ReadWrite
при открытии FileStream.
Я использую аналогичный код для открытия и чтения документов Excel, когда Excel все еще открыт и блокирует файл.
using (var inputFile = new FileStream(
"oldFile.txt",
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
{
using (var outputFile = new FileStream("newFile.txt", FileMode.Create))
{
var buffer = new byte[0x10000];
int bytes;
while ((bytes = inputFile.Read(buffer, 0, buffer.Length)) > 0)
{
outputFile.Write(buffer, 0, bytes);
}
}
}