У меня есть приложение, которое может изменять изображения. В некоторых случаях это делает размер файла меньше, в некоторых случаях больше.
Программа не имеет возможности «не заменять файл, если результат имеет больший размер файла».
Итак, я написал небольшое приложение на C #, чтобы попытаться решить эту проблему.
Вместо того, чтобы перезаписывать файлы, я заставляю приложение записывать результат в папку под текущей и называю эту папку Test.
Приложение C #, которое я написал, сравнивает содержимое обеих папок и помещает полный путь к файлу (файлам) в двух объектах List. Я тогда сравниваю и заменяю.
Однако замена не работает. Я получаю следующее IOException:
Невозможно удалить файл для
заменен
Место находится на внешнем жестком диске, на который у меня есть полные права.
Теперь я знаю, что могу просто выполнить File.Delete и File.Move в таком порядке, но это исключение заинтересовало меня , почему эта конкретная установка не работает.
Вот исходный код: http://pastebin.com/4Vq82Umu
И да, файл, указанный в качестве последнего аргумента функции Replace, существует.