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 

Matriz con datos de ficheros de un Directorio (URGENTE)

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Matriz con datos de ficheros de un Directorio (URGENTE) Responder citando

POR FAVOR NECESITO URGENTEMENTE saber como puedo meter en una matriz (array de arrays) los nombres, fechas de modificacion y tamaño de los archivos que existen en una carpeta de mi pc, es decir, tengo la ruta de la carpeta donde estan esos archivos almacenada en una variable y necesito que coja archivo por archivo y me valla almacenando en una matriz las propiedades de esos archivos de la siguiente forma:

nombre_archivo | dia | mes | año | hora | minuto | tamaño
archivo1.doc | 3 | 5 | 2002 | 15 | 35 |26554
archivo2.pdf | 5 | 2 | 2003 | 5 | 48 | 6545544
archivo3.sys | 6 | 9 | 2000 | 23 | 25 | 65
archivo4.dat | 8 | 11 | 1998 | 0 | 6 | 878545

GRACIAS ADELANTADAS POR LA ATENCION A ESTE MENSAJE
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Personalmente los arrays anidados no me han gustado nunca, pero eso es como todo: cada maestrillo tiene su librillo.

Para sacar los que quieres necesitas usar un elemento FileListBox, para recorrer la carpeta, y la función FileGetAttr, para obtener entre otras cosas: fecha y hora de creación o última modificación en formato timestamp, tamaño y nombre. Además creo que te hará falta ayudarte con alguna otra función (FileAge, etc.). Este código no lo he probado, pero puede que te valga:
Código:
AnsiString cViaAcceso = "C:\\Windows\\";
AnsiString cFile = "";
int nAtrib;
TDateTime dtFile;

FileListBox1->Mask = cViaAcceso + "*.*";
for (int nItem = 0; nItem < FileListBox1->Items->Count; nItem ++)
{
     cFile = cViaAcceso + FileListBox1->Items->Strings[nItem];
     nAtrib = FileGetAttr(cFile);

     dtFile = FileAge(cFile);
     nombre_archivo = FileListBox1->Items->Strings[nItem];
     tamaño = nAtrib.Size;
}

Espero que, por lo menos, te sirva de pìsta para lo que te hace falta.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

muchisimas gracias
me hacia mucha falta algo asi
voy a probarlo enseguida
mi objetivo es hacer un cliente ftp de trabajo en grupo
en cuanto lo acabe lo publicare en esta pagina
REPITO: MUCHISIMAS GRACIAS
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Tambien puedes hacerlo de la siguiente manera:

Código:

    TSearchRec SearchRec;

    FindFirst(ExtractFileDir(ParamStr(0))+AnsiString("\\*.*"),faAnyFile, SearchRec);

    while (FindNext(SearchRec) == 0)
    {
        ShowMessage (
                SearchRec.Name+AnsiString(" | ")+
                SearchRec.Size+AnsiString(" bytes")+AnsiString(" | ")+
                FileDateToDateTime(SearchRec.Time));
    }
    FindClose(SearchRec);


Lo que hacemos es primero realizar una busqueda con FindFirts al cual le pasamos lo que queremos buscar (en este caso, cualquier fichero del directorio en el cual se encuentra el ejecutable) tambien le especificamos lo que debe buscar (en este caso cualquier fichero, si quisieramos solo los archivos deberemos cambiar faAnyFile por faArchive). El resultado aparece en la variable SearchRec.

Busca en la ayuda este termino para conocerla mejor.

La fecha la da de modo codificado, para ello utilizamos la funcion FileDateToDateTime. En SearchRec.Time tenemos el valor en modo entero y codificado.

A continuacion continuamos la busqueda, ya que FindFirts solo busca hasta encontrar la primera coincidencia. Luego continuamos la busqueda con FindNext.

Acabamos la busqueda con FindClose.

Bueno espero haberte ayudado.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
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.