[BUG?] WFX. FsRenMovFile. FS_FILE_EXISTS

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
Maximus
Сообщения: 927
Зарегистрирован: Чт апр 07, 2005 10:51
Откуда: Украина, Кировоградская обл., г. Знаменка
Контактная информация:

[BUG?] WFX. FsRenMovFile. FS_FILE_EXISTS

Сообщение Maximus »

Код: Выделить всё

extern "C" __declspec(dllexport) int  __stdcall FsRenMovFile(char* OldName,char* NewName,bool Move,bool OverWrite,RemoteInfoStruct* ri)
{
    if(!strcmp(OldName,NewName)) return FS_FILE_OK;
    if(!OverWrite && ItemExists(NewName))
        return FS_FILE_EXISTS;
    CopyItem(OldName,NewName,Move,OverWrite);
    return FS_FILE_OK;
}
ItemExists - проверка суествования файла
CopyItem - копирование/перемещение файла
Когда файл копируется из одной папки в другую (в WFX файловой системе) и возвращается FS_FILE_EXISTS (при существовании файла) - все нормально - я получаю диалог перезаписи.
Когда файл копируется в ту же папку (по Shift+F5) и возвращается FS_FILE_EXISTS (при существовании файла) - все нормально - я получаю диалог перезаписи.
Но когда файл переименовывается (по Shift+F6) и возвращается FS_FILE_EXISTS (при существовании файла) я не получаю диалог перезаписи. Но зато получаю следующее сообщение:
---------------------------
Total Commander
---------------------------
Error: Cannot write \\\VFS\222.222!

Please remove the write protection!
---------------------------
ОК
---------------------------
Правильно ли это (сомневаюсь)?

Тема на оффоруме:
http://ghisler.ch/board/viewtopic.php?t ... 6f09df7648
Аватара пользователя
Maximus
Сообщения: 927
Зарегистрирован: Чт апр 07, 2005 10:51
Откуда: Украина, Кировоградская обл., г. Знаменка
Контактная информация:

Сообщение Maximus »

ghisler(Author) писал(а):The plugin rename function doesn't currently support the overwriting of already existing files, therefore you currently get an error in this case.
ghisler(Author) писал(а):Сейчас функция переименования не поддерживает перезапись существующих файлов и потому в данном случае ты получаешь ошибку.
Ответить