Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Creación de carpetas en el Desktop

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Creación de carpetas en el Desktop Responder citando

Alguien me podría decir cómo podría crear una carpeta en el Desktop, mirar si existe, borrarla, etc.

O indicarme que funciones debo buscar en la ayuda o la información que sea que pueda ayudarme.

Gracias por leer este mensaje.

Volver arriba
Mensaje    Asunto: Creación de carpetas en el Desktop Responder citando

Hola Alfonso:

Aquí va un ejemplo que creo que se explica por si mismo, de todos modos si tienes alguna duda aquí estamos.

Antes que nada es importante que añadas lo siguiente al principio de la unit en la que lo vayas a usar, debe estar antes de todas las otras cabeceras en esa unit, incluida la 'vcl.h'

  #define NO_WIN32_LEAN_AND_MEAN
  #include <shlobj.h>
  #include <FileCtrl.hpp>

code:

//-------------------------------------------------------------------
//------- Averiguamos cual es el directorio del escritorio ----------
String sDesktopPath;
LPITEMIDLIST ItemID;
SHGetSpecialFolderLocation(Handle, CSIDL_DESKTOPDIRECTORY, &ItemID);
if(ItemID != NOERROR)
{
char szDirPath[MAX_PATH];
SHGetPathFromIDList(ItemID, szDirPath);
sDesktopPath = szDirPath;
if (sDesktopPath[sDesktopPath.Length()] != '\\')
sDesktopPath += "\\";
}
else
throw Exception("ERROR :: SHGetSpecialFolderLocation");
//-------------------------------------------------------------------
//---------------- Crea una nueva carpeta en el escritorio ----------
bool bRet;
bRet = CreateDir(sDesktopPath + "MiNuevaCarpeta");
if (bRet)
ShowMessage("Se creo la carpeta");
else
ShowMessage("NO se pudo crear la carpeta");
//-------------------------------------------------------------------
//---------------- Comprueba si existe la carpeta -------------------
bRet = DirectoryExists(sDesktopPath + "MiNuevaCarpeta");
if (bRet)
ShowMessage("Existe");
else
ShowMessage("NO Existe");
//-------------------------------------------------------------------
//---------------- Borra la carpeta ---------------------------------
bRet = RemoveDir(sDesktopPath + "MiNuevaCarpeta");
if (bRet)
ShowMessage("Se borro la carpeta");
else
ShowMessage("NO se pudo borrar la carpeta\n"
"RECUERDE que DEBE ESTAR VACIA para poder borrarla");

Saludos.
_Leo

Volver arriba
Mensaje    Asunto: Creación de carpetas en el Desktop Responder citando

Perdón por la molestia, ya he encontrado el error. "Me he dejado de añadir a la ruta el nombre del fichero destino" ejemplo: 1.doc"

Volver arriba
Mensaje    Asunto: Creación de carpetas en el Desktop Responder citando

Leo tengo un pequeño problemilla ya que ahora que he creado la carpeta quiero copiar un fichero a esa carpeta pero no hay manera.

SHGetSpecialFolderLocation(Handle, CSIDL_DESKTOPDIRECTORY, &ItemID);
if(ItemID != NOERROR)
{
char szDirPath[MAX_PATH];
SHGetPathFromIDList(ItemID, szDirPath);
sDesktopPath = szDirPath;
if (sDesktopPath[sDesktopPath.Length()] != '\\') sDesktopPath += "\\";
}
else throw Exception("ERROR :: SHGetSpecialFolderLocation");

bRet = DirectoryExists(sDesktopPath + Leccion);
sDesktopFinal = sDesktopPath + Leccion;
if (bRet) // Si existe el directorio solo copia el fichero ShowMessage("Existe");
CopyFile(FinalPath.c_str(),sDesktopFinal.c_str(),false);
else { // Si no existe el directorio crea el fichero y copialo
bRet = CreateDir(sDesktopPath + Leccion);
CopyFile(FinalPath.c_str(),sDesktopFinal.c_str(),false);
if (bRet) {} //ShowMessage("Se creo la carpeta");
else ShowMessage("NO se pudo crear la carpeta");
}

La función CopyFile me devuelve 0, por lo que se ha producido un error y no lo copia.
El fichero por supuesto existe y no comprendo porque no lo copia.

¿Alguna idea?

Volver arriba
Mensaje    Asunto: Creación de carpetas en el Desktop Responder citando

Gracias Leo me funciona perfectamente.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.