Форум — Ответы     (  К темам )
 ?  NewKid: Использование shell функции TFileOperation (16-02-2003 13:01:50)
Попробовал вставить функцию TFileOperation в пример VirtualListView. Если вид операции FO_MOVE или FO_DELETE, то функция возвращает код = 32 и дает сообщение, что папку удалить нельзя, потому что она занята другим пользователем или программой. Почему ? Помогите, очень прошу.
 Павел (16-02-2003 14:22:26)
Что за TFileOperation ? Из библиотеки RXLib ?
Приведите пример кода с использованием TFileOperation , разберемся.
 NewKid (17-02-2003 09:13:40)
Извените, писал свой класс на Shell функции, его так назвал и ошибся. Конечно же SHFileOperation.
Код :

// фрагмент кода вызова
if (lstvwVirtualList->Selected != NULL)
{
I = lstvwVirtualList->Selected->Index;
CopyDirFrom = PathFrom + GetShellItem(I)->DisplayName;
CopyDirFrom.SetLength(CopyDirFrom.Length() + 1);
CopyDirFrom[CopyDirFrom.Length()] = '\0';

CopyDirFrom.SetLength(CopyDirFrom.Length() + 1);
CopyDirFrom[CopyDirFrom.Length()] = '\0';

}
SHCopyFile(CopyDirFrom, CopyDirTo, FO_MOVE);


// функция
void __fastcall TfrmVirtualListView::SHCopyFile(String DirFrom, String DirTo, UINT wF)
{
SHFILEOPSTRUCT op;
int I;
ZeroMemory(&op, sizeof(op));
op.hwnd = 0;
op.pFrom = DirFrom.c_str();
op.pTo = DirTo.c_str();
op.wFunc = wF; // принимает значения FO_DELETE, FO_MOVE
SHFileOperation(&op);
}