| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > SHFileOperation и SHFILEOPSTRUCT |
| Автор: ActioN 5.5.2006, 00:18 | ||
| Требуется удалить несколько файлов с помощью SHFileOperation. Для удаления одного файла нужно, как говориться в MSDN, поставить в конце null-terminated символ. С одним файлом проблем нету, все удаляется хороше, но вот как быть с несколькими файлами? Вот цитата из MSDN: Address of a buffer to specify one or more source file names. These names must be fully qualified paths. Standard Microsoft® MS-DOS® wildcards, such as "*", are permitted in the file name position. Although this member is declared as a null-terminated string, it is used as a buffer to hold multiple file names. Each file name must be terminated by a single NULL character. An additional NULL character must be appended to the end of the final name to indicate the end of pFrom Если я правильно понял, то нужно сделать так:
Но функция не работает. Пишет, что такого файла нету. Перепробовал все возможные варианты - та же проблема. Подскажите пожалуйста, как правильно оформить параметр pFrom структуры SHFILEOPSTRUCT? |
| Автор: Coala 5.5.2006, 07:36 | ||
Попробуй собрать pFrom следующим образом:
и затем подставь этот буфер в вызов ShFileOperation. Проверь в отладчике, что хранится в буфере - там должна быть строка вида fname1.ext\0fname2.ext\0fname3.ext\0\0. |
| Автор: ActioN 6.5.2006, 00:29 |
| Coala, тоже неработало. В буффере было что-то типа fname1.extfname2.ext.fname3.ext (без завершающих символов между именами файлов и без 2х завершающих после последнего имени файла) ... и еще куча мусора на оставшиеся 2048 символов |