Итак, у меня есть консольное приложение C#, которое просматривает огромный список файлов и копирует отсутствующие файлы в удаленное место с помощью подключенного диска WebDAV.
По сути, я не использую пользовательский клиент, я использую встроенный клиент Windows.
net use j: http://127.69.69.69 /user:testme pass /persistent:yes
Кажется, все работает просто отлично (я увеличил ограничения на размер файла на сервере IIS 7.0 и т. д.), ЗА ИСКЛЮЧЕНИЕМ, иногда я получаю всплывающее окно «Отложенная ошибка записи» из ОС.
Моя проблема в том, что мое приложение не вызывает/выдает исключение в методе File.Copy() на клиенте. Как я могу это обнаружить?
Я думаю, это не так уж важно, но часть меня задается вопросом, почему не выдается исключение. Кажется, что он переходит к следующему файлу без регистрации ошибки. Мой сценарий проверяет, совпадает ли размер удаленного файла, и может заменить частичный файл в следующем цикле.
Довольно простой код, где он фактически копирует:
Log("\n copying " + lf.FullName);
try
{
if (!Directory.Exists(Path.Combine(remotePath, localDir.Name)))
Directory.CreateDirectory(Path.Combine(remotePath, localDir.Name));
}
catch (Exception e)
{
Log("Cannot create remote directory " + Path.Combine(remotePath, localDir.Name) + " " + e.Message , "error");
}
try
{
File.Copy(lf.FullName, Path.Combine(new string[] { remotePath, localDir.Name, lf.Name }), true);
}
catch (Exception e)
{
Log("Cannot copy file to " + Path.Combine(new string[] { remotePath, localDir.Name, lf.Name }) + " " + e.Message, "error");
}