Предотвращает ли File.Copy запись в файл другого приложения? - PullRequest
7 голосов
/ 26 ноября 2011

Я хочу скопировать некоторые текстовые файлы, написанные другим приложением, но я не хочу ничего делать, чтобы предотвратить другое приложение. от записи в эти файлы.

Я использую File.Copy, из System.IO namespace, C #, .Net Framework 2.0.

Я проверил документацию MSDN, но ничего конкретно не сказано о методе, который File.Copy использует. Это оболочка для неуправляемого вызова API?

File.Copy блокирует или блокирует копируемый файл каким-либо образом?

Заранее спасибо за любую информацию по этому поводу.

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Если другое приложение создает свои файлы, указав FileShare.None, вы получите исключение UnauthorizedAccessException. Поэтому я полагаю, что вам просто нужно обработать это конкретное исключение в вашем приложении.

1 голос
/ 26 ноября 2011

Вы можете использовать .Net Reflector (или другой инструмент декомпиляции) для просмотра внутренней структуры метода.

На самом деле вы можете видеть, что System.IO File.Copy использует Microsoft.Win32.Win32Native библиотека для копирования файлов.Microsoft.Win32.Win32Native это оболочка CLR для всех собственных операций Win32.

...