![]() |
Несомненно, что многим приложениям приходится выполнять различные файловые операции, как-то копирование, перемещение, удаление или переименование файлов. Есть строенная поодержка файловых операций в Win32 допускает использование джокерных символов (я не знаю, что это такое) и указывать целые ветви каталогов. Прототип функции:
Код:
WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFileOp); Код:
typedef struct_SHFILEOPSTRUCT { ....... Файлы, над котороми выполняются операции, определяются параметрами pFrom и pTo, которые в действительности являются указателями на массив строк. Каждая строка заканчивается нулем (значением null), конец массива обозначется двумя значениями null. Даже если передается единственное имя файла, строка завершается двойным null. Так вот у меня совсем не получается создать такой массив строк. Я даже не знаю с какой стороны подлезть, потому-что в моем понимании '\0' означает конец строки и все функции работы со строками думают точно так же. Или я не так понял null? Если кто пользовался приведенной функцией, пожалуйста пример :) |
Crew
Если я правильно понял, то передаётся нечто вроде "C:\\some\\path\\file\0C:\\some\\another\\path\\file\0\0" |
а вот как программным способом их склеить?
strcat мне не помог |
Crew
Ручками :) Код тривиален. |
Если б догадался не спрашивал бы. Флеймим, товарищь модератор? :)
|
Crew
Да не флеймит он... Выделяешь буфер достаточного размера. Используешь указатель на этот буфер. Копируешь через этот указатель одну строку. Ищешь '\0'. Устанавливаешь указатель на следующий байт. Копируешь через этот указатель следующую строку... И т.д. Пока строки не закончатся. А как закончились, записываешь ещё один нолик...:biggrin: |
shurikan
спасибки:biglaugh: |
Время: 15:36. |
Время: 15:36.
© OSzone.net 2001-