Перемещение и перезапись файлов C #

Я разрабатываю многопоточное приложение. В моем коде есть что-то:

File.Delete(sidetapedata);
File.Move(sidetapedata2, sidetapedata); //sidetapedata and sidetapedata2 are two file paths that correspond to sidetapedata.txt and sidetaptdata2.txt in some directory.

Вторая строка иногда работает нормально, а иногда выдает исключение IOException :

Cannot create a file when that file already exists.

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

ОБНОВЛЕНИЕ : даже когда визуальный отладчик C # показывает мне это исключение, глядя в каталог, содержащий эти файлы, я вижу, что файла sidetapedata.txt нет, но есть sidetapedata2 .txt файл!

ОБНОВЛЕНИЕ 2 : такое поведение происходит только тогда, когда sidetapedata.txt и sidetapedata2.txt оба пустые

5
задан prongs 8 January 2012 в 09:01
поделиться