Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
void Folders(String Dir, TStrings* Salida)
{
    TSearchRec sr;
    if(!FindFirst(Dir + "\\*.*", faAnyFile, sr))
    do{
      Salida->Add(Dir + "\\" + sr.Name);
    } while (!FindNext(sr));
    FindClose(sr);
}
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Folders("C:\\Documents and Settings", Memo1->Lines);
}
Saludos.
Responder Con Cita
  #2  
Antiguo 24-11-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Gracias escafandra;

El código me funciona bien pero me saca unas carpetas con puntos que no se que son y no existen, te muestro lo que sale en el Memo

--------------------------------------
C:\Documents and Settings\.
C:\Documents and Settings\..
C:\Documents and Settings\Administrador
C:\Documents and Settings\Administrador.IPIMTZAG
C:\Documents and Settings\All Users
C:\Documents and Settings\amartinez
C:\Documents and Settings\Default User
C:\Documents and Settings\LocalService
C:\Documents and Settings\NetworkService
C:\Documents and Settings\yrodriguez

-----------------------------------------------------

Las dos primeras no se que son, como se pudieran quitar y también como pudiera darles las exclusiones que yo quisiera.

Yo lo que trato de hacer es paserle esta lista a la función de eliminar Carpetas completas

Muchas gracias por la ayuda brindada
Responder Con Cita
  #3  
Antiguo 24-11-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Viene desde la época del DOS:
\. es la carpeta actual
\.. es la carpeta anterior (padre)

Saludos.
Responder Con Cita
  #4  
Antiguo 26-11-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Thumbs up

Muchas Gracias escafandra como siempre.

Bueno para el que a ya tenido el mismo problema que yo y no sepa como borrar todo los subdirectorios de una carpeta incluyendo los archivos, aqui les dejo el código que e utilizado para el mismo.

Primero que nada debemos de declarar estas dos funciones.



Codigo Funcion1
//--------------------------------------------------------

void __fastcall TForm1:eleteFolder(String Folder)
{
SHFILEOPSTRUCT FileOpInfo;
setmem(&FileOpInfo, sizeof(FileOpInfo), 0);
FileOpInfo.wFunc = FO_DELETE;
FileOpInfo.pFrom = Folder.c_str();
FileOpInfo.fFlags = FOF_NOCONFIRMATION;
SHFileOperation(&FileOpInfo);
}

//-----------------------------------------------------

Codigo Funcion2
//--------------------------------------------------------

void __fastcall TForm1::ListarEliminarFolders(String Dir, TStrings* Salida)
{
TSearchRec sr;
if(!FindFirst(Dir + "\\*.*", faAnyFile, sr))
do{
Salida->Add(Dir + "\\" + sr.Name);
if (sr.Name=="." || sr.Name=="..") NULL;
else DeleteFolder(Dir + "\\" + sr.Name);
} while (!FindNext(sr));
FindClose(sr);
}

//---------------------------------------------------------

-En la primera Funcion es para eliminar la carpeta completa que se le pase,

-En la Segunda Función es para listar todos los Archivos y Carpetas dentro de un directorio y Eliminarlos con la Primera Función Declarada,

Le puse un IF para que cuando mande a borrar la lista de Archivos y Carpetas encontrados no me de Error a la hora de borrar estos dos "." y "..", que como escafandra me decía viene de la época del DOS.

Bueno y Como ultimo como se Llama a la Función para eliminar todo el contenido dentro de una Carpeta dejándola a ella intacta.

Código Acción

//------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListarEliminarFolders("C:\\Documents and Settings", Memo1->Lines);
}

Se inserta un Memo1 para ver todos los archivos con las carpeta que existian en el Directorio seleccionado "C:\Documents and Settings".


Bueno cuando encuentre como pudiera ponerles mas carpetas a Excluir lo pasteo, para como ya dije le sirva a alguien que tenga la misma duda que yo, los archivos a Excluir deben de estar en un Fichero aparte...


Bueno Saludos y Muchas gracias a todos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con onexion a sql server 2000 con ado por codigo desde delphi 6 FAGD Conexión con bases de datos 2 26-02-2008 17:24:08
Porfavor algo de ayuda con un poco de codigo en delphi!! N4ota Varios 6 10-06-2007 22:40:54
Ayuda para completar código:Traducción de Delphi a Builder Pernorak C++ Builder 3 30-05-2007 12:45:16
Pasar codigo C a delphi Mr.Vaka Varios 1 24-12-2005 11:38:02
Pasar Código VBSCRIPT a Delphi.net mamen .NET 2 03-06-2005 14:52:43


La franja horaria es GMT +2. Ahora son las 09:53:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi