Red de conocimiento informático - Programación de la red - Por favor, infórmeme sobre cómo llamar a SHFileOperation para copiar y cambiar el nombre de archivos.

Por favor, infórmeme sobre cómo llamar a SHFileOperation para copiar y cambiar el nombre de archivos.

#includelt;shellapi.hgt;

//Eliminar archivos o carpetas

bool DeleteFile(TCHAR * lpszPath)

{

SHFILEOPSTRUCT FileOp={0};

FileOp.fFlags = FOF_ALLOWUNDO | //Permitir volver a colocar en la papelera de reciclaje

FOF_NOCONFIRMATION; aparece

FileOp.pFrom = lpszPath;

FileOp.pTo = NULL; //Debe ser NULL

FileOp.wFunc = FO_DELETE; /p> p>

return SHFileOperation(amp;FileOp) == 0;

}

//Copiar archivos o carpetas

bool CopyFile( TCHAR * pTo, TCHAR *pFrom)

{

SHFILEOPSTRUCT FileOp={0};

FileOp.fFlags = FOF_NOCONFIRMATION| //No aparece ningún cuadro de diálogo de confirmación

p>

FOF_NOCONFIRMMKDIR //Crea una carpeta directamente cuando sea necesario sin confirmación del usuario

|FOF_SIMPLEPROGRESS; //Barra de progreso

FileOp.pFrom = pFrom;

FileOp.pTo = pTo;

FileOp.wFunc = FO_COPY

return SHFileOperation(amp; FileOp) ==

}

//Mover archivos o carpetas

bool MoveFile(TCHAR *pTo, TCHAR *pFrom)

{

SHFILEOPSTRUCT FileOp={ 0};

FileOp.fFlags = FOF_NOCONFIRMATION| //No aparece ningún cuadro de diálogo de confirmación

FOF_NOCONFIRMMKDIR //Crea una carpeta directamente cuando sea necesario, sin confirmación del usuario

FileOp.pFrom = pFrom;

FileOp.pTo = pTo;

FileOp.wFunc = FO_MOVE

return SHFileOperation(amp; FileOp) = = 0;

}

//Desde el archivo o carpeta con nombre

bool ReNameFile(TCHAR *pTo, TCHAR *pFrom)

{

SHFILEOPSTRUCT FileOp={0};

FileOp.fFlags = FOF_NOCONFIRMATION

FileOp.pFrom = pFrom

FileOp .pTo; pTo;

FileOp.wFunc

= FO_RENAME;

FileOp.hwnd= HWND_DESKTOP;

return SHFileOperation(amp; FileOp)==0

}

void; CShfileopDlg::OnButton1()

{

// TODO: agregue aquí el código del controlador de notificaciones de control

CopyFile(_T("c:\\two" ), _T("c:\\123"));

ReNameFile(_T("c:\\newtwo"), _T("c:\\123"));

DeleteFile(_T("c:\\newtwo"));

AfxMessageBox(_T("Complete"));

}