#1: Копирование папок из WFX плагина Author: featZima, Posted: Mon Dec 07, 2009 14:21 Проблема состоит в следующем. В первый раз в функцию FsGetFile тотал передаёт нормальное локальное имя файла, а в последующие разы уже испорченное, подскажите, почему так может быть?*
#2: Author: CaptainFlint, Location: МоскваPosted: Mon Dec 07, 2009 17:47 featZima
А по какой причине функция вызывается второй раз?
#3: Author: featZima, Posted: Mon Dec 07, 2009 23:55 1. Если копировать файлы, для каждого ручками нажимая F5 - всё нормально
2. Если копировать файлы, выделив несколько и нажав F5 - всё нормально
3. Если копировать папку (или папки) в которых есть эти файлы - для первого файла функция вызывается с нормальными параметрами, для остальных с испорченными...
#4: Author: CaptainFlint, Location: МоскваPosted: Tue Dec 08, 2009 02:50 Не подтверждаю. Сейчас создал у себя в плагине простейшую функцию FsGetFileW (С++):
Code:
int __stdcall FsGetFileW(WCHAR* RemoteName, WCHAR* LocalName, int CopyFlags, RemoteInfoStruct* ri)
{
if (theApp.ProgressProcW(theApp.PluginNr, LocalName, RemoteName, 0) == 1)
return FS_FILE_USERABORT;
theApp.ProgressProcW(theApp.PluginNr, LocalName, RemoteName, 100);
return FS_FILE_OK;
}
В плагине создал папку с десятком файлов и подпапкой, в которой ещё пара файлов, вызвал копирование — все имена пришли в функцию в нормальном виде.
Подозреваю, что где-то в коде плагина происходит порча данных, на которые опирается Тотал.
#5: Author: featZima, Posted: Tue Dec 08, 2009 02:55 Стоп) Большой спасибо, за помощь! Но с юникодным вариантом и у меня всё нормально... Проблема как раз в Ansi варианте... Про то, что плагин портит данные, не думаю -- убрал всё из функций (результат тотже)...
#6: Author: CaptainFlint, Location: МоскваPosted: Tue Dec 08, 2009 03:06 Ну с ANSI сложнее. У меня этот плагин исключительно юникодный… Попробовал сейчас вместо FsGetFileW воткнуть FsGetFile с соответствующими модификациями, точно так же корректно всё работает, но не исключено, что общая юникодность плагина сказывается.
Идей больше не имею. Попробуй создать с нуля минимальный проект FS-плагина, где все функции — пустые заглушки, ну и чуть-чуть захардкоденных строк, чтобы список файлов непустой был, и на нём уже проверить поведение функции. Если и там баг воспроизведётся, то выложи этот мини-проектик на всеобщее обозрение. А то ни воспроизвести, ни проверить… У меня, правда, дельфей нет, так что поучаствовать смогу только методом пристального взгляда, но тут дельфистов немало обитает, авось помогут в поиске и отладке.