Crew
18-04-2003, 21:47
Несомненно, что многим приложениям приходится выполнять различные файловые операции, как-то копирование, перемещение, удаление или переименование файлов. Есть строенная поодержка файловых операций в Win32 допускает использование джокерных символов (я не знаю, что это такое) и указывать целые ветви каталогов. Прототип функции:
WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFileOp);
В функцию передается только структура, которая определяет способ выполнения оболочкой файловых операций. Состав структуры:
typedef struct_SHFILEOPSTRUCT {
HWND hWnd;
UINT wFunc;
LPCSTR pFrom;
LPCSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationAborted;
LPVOID hNameMappings;
LPCSTR lpszProgressTitle;
}
.......
Файлы, над котороми выполняются операции, определяются параметрами pFrom и pTo, которые в действительности являются указателями на массив строк. Каждая строка заканчивается нулем (значением null), конец массива обозначется двумя значениями null. Даже если передается единственное имя файла, строка завершается двойным null.
Так вот у меня совсем не получается создать такой массив строк. Я даже не знаю с какой стороны подлезть, потому-что в моем понимании '\0' означает конец строки и все функции работы со строками думают точно так же. Или я не так понял null?
Если кто пользовался приведенной функцией, пожалуйста пример :)
WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFileOp);
В функцию передается только структура, которая определяет способ выполнения оболочкой файловых операций. Состав структуры:
typedef struct_SHFILEOPSTRUCT {
HWND hWnd;
UINT wFunc;
LPCSTR pFrom;
LPCSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationAborted;
LPVOID hNameMappings;
LPCSTR lpszProgressTitle;
}
.......
Файлы, над котороми выполняются операции, определяются параметрами pFrom и pTo, которые в действительности являются указателями на массив строк. Каждая строка заканчивается нулем (значением null), конец массива обозначется двумя значениями null. Даже если передается единственное имя файла, строка завершается двойным null.
Так вот у меня совсем не получается создать такой массив строк. Я даже не знаю с какой стороны подлезть, потому-что в моем понимании '\0' означает конец строки и все функции работы со строками думают точно так же. Или я не так понял null?
Если кто пользовался приведенной функцией, пожалуйста пример :)