![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Копирую несколько файлов из одной папки в другую функцией API SHFileOperation.
В папке - приёмнике файлы с такими именами уже есть, они все перезаписываются. Все файлы с одинаковыми свойствами - то есть не защищены от записи. И вот почему то все, кроме одного нормально копируются, а на одном из них функция SHFileOperation возвращает ошибку 87. Нашёл в сети текст этой ошибки: "The source is a read-only DVD, possibly unformatted". Но как это "привязать" к моей ситуации, не пойму... Если в файл-менеджере Windows я пробую точно также скопировать этот файл - он нормально копируется, перезаписывая в папке - приёмнике файл с таким же именем, а вот SHFileOperation почему-то не хочет.. |
#2
|
||||
|
||||
![]() Всё что начинается на SH* - это ведь идёт прям из-под оболочки, и проводник делает тоже самое, следовательно выходит что во время выполнения сборки этот файл-"стоик" кем-то или чем-то занят - сорцевой ведь не читается, нужно его освобождать. Попробуйте подсунуть передаваемой структуре флаг FOF_NOCONFIRMATION (отвечать yestoall на всё автоматом), может и перезапишет
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
![]() Товарищи, это чёто непонятное... Методом тыка нашёл причину ошибки, но она очень странная:
Ошибка 87 происходит только тогда, когда файл в источнике называется "LASTEDIT", причём независимо от расширения. Как только я меняю в имени хоть одну букву, он начинает также как и все остальные нормально копироваться... Ну надо же такому совпадению случиться!.. Причём файл-менеджер Windows так не реагирует и нормально копирует этот файл... Кто-нибудь сталкивался с этим обстоятельством и может как-то прокомментировать такое поведение SHFileOperation ? |