Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2007
gonzalez gonzalez is offline
Registrado
 
Registrado: may 2007
Posts: 6
Poder: 0
gonzalez Va por buen camino
Encontrar propiedades de un archivo desde Delphi.

¿Como puedo encontrar o accesar a las propiedades de un archivo guardado en Mi PC desde Delphi?
Responder Con Cita
  #2  
Antiguo 31-05-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool ?

Que clase de archivo y que propiedades exactamente? Te pregunto esto por que puedes obtener mas informacion dependiendo de que quieras hacer, al ser un .EXE (por ejemplo), puedes obtener su EntryPoint, espacio reservado inicial, Autor, Descripcion, etc, etc...
Responder Con Cita
  #3  
Antiguo 04-06-2007
gonzalez gonzalez is offline
Registrado
 
Registrado: may 2007
Posts: 6
Poder: 0
gonzalez Va por buen camino
Pues, necesito obtener su fecha de último acceso. Gracias de antemano.
Responder Con Cita
  #4  
Antiguo 04-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Ok

Siendo así, entonces más útil creo que es éste código no?

Código Delphi [-]
var
 hFile: Cardinal;
 CreationTime, LastAccessTime, LastWriteTime: TFileTime;
 SystemTime: TSystemTime;
begin
 hFile := CreateFile('c:\ntldr', GENERIC_READ, FILE_SHARE_READ + FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
 if hFile <> INVALID_HANDLE_VALUE then
  begin
   GetFileTime(hFile, @CreationTime, @LastAccessTime, @LastWriteTime);
   CloseHandle(hFile);
   FileTimeToSystemTime(LastAccessTime, SystemTime);
   Caption := DateTimeToStr(SystemTimeToDateTime(SystemTime))
  end
 else
  Caption := 'Error al acceder al archivo!';
end;

Espero te sirva, Suerte!
Responder Con Cita
  #5  
Antiguo 05-06-2007
gonzalez gonzalez is offline
Registrado
 
Registrado: may 2007
Posts: 6
Poder: 0
gonzalez Va por buen camino
Smile

Sí me sirve. Pero, ¿como podría crear un ciclo que me permita identificar documentos Word en mi disco duro (incluyendo carpetas)?
Responder Con Cita
  #6  
Antiguo 06-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Ok

Bueno, eso esta dividido en dos partes, la primera es recorrer todas las carpetas y subcarpetas de un directoriio o unidad... y la seguna es detectar el formato de cada archivo, en este caso debe ser del Word. Pero el Word reconoce N formatos así que para hacer una aplicacion que se ajuste a cualquier necesidad deberíamos abrir cada archivo con el Word en segundo plano, si éste no retorna error al abrirlo, significa que es un formato de texto reconocido. Este método engloba todo el universo de archivos Word existentes en una carpeta o unidad, sin embargo es muy costoso abrir todos los archivos con Word (pero permiritía poder recuperar archivos borrados), así que se puede revisar la asociacion, siendo un archivo asociado con el Word (Word.Document) entonces se podría reducir los intentos del Word.

Tambien sería más facil abrir cada archivo y revisar su cabezal... (primeros 64 bits)... obteniendo solo a aquellos que son Office.

Te comento todo esto para que tengas una idea de la respuesta que se ajusta mas con la pregunta que me hiciste, pues realmente puede ser tu necesidad. Concluí que por ahora basta ver que archivos tienen la extencion '.doc'... para eso te dejo la funcion 'Search'
Código Delphi [-]
var FindData: TWin32FindData;
 
function GetCardinal(var Buffer): Cardinal;
asm
 mov eax, [eax]
 and eax, 0DFDFDFDFh
end;
 
procedure Search(const Path: string);
var Handle, Ext: Cardinal;
begin
 Handle := FindFirstFile(PChar(Path + '\*.*'), FindData);
 if Handle <> INVALID_HANDLE_VALUE then
  begin
   with FindData do
    repeat
     if (dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
      begin
       if (cFileName <> string('.')) and (cFileName <> '..') then
        Search(Path + '\' + cFileName);
      end
     else
      begin
       Ext := StrLen(@cFileName);
       while (Ext <> 0) and (cFileName[Ext - 1] <> '.') do Dec(Ext);
       if (Ext <> 0) and (GetCardinal(cFileName[Ext]) = $00434F44) then
        Form1.ListBox1.AddItem(Path + '\' + cFileName, nil); // aca procesamos el archivo
      end;
    until not FindNextFile(Handle, FindData);
   Windows.FindClose(Handle);
  end;
end;

úsala como:

Código Delphi [-]
 Search('f:');
ó
 Search('f:\Mis documentos');

PD: La edite pues había un desbordamiento con 'Ext'

Saludos!

Última edición por cHackAll fecha: 06-06-2007 a las 03:56:16.
Responder Con Cita
  #7  
Antiguo 07-06-2007
gonzalez gonzalez is offline
Registrado
 
Registrado: may 2007
Posts: 6
Poder: 0
gonzalez Va por buen camino
Smile

Emplearé esa programación. muchas gracias por tu tiempo.
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
Guardar archivo excel desde delphi rruffino Servers 7 01-02-2008 18:20:32
como encontrar la IP publica de mi router desde un prog en DELPHI en mi PC en la LAN pvizcay Varios 2 01-03-2007 01:14:34
Acceso a las propiedades de un objeto desde el editor de propiedades Hugo OOP 0 24-11-2006 12:58:22
Como abrir un archivo .MEM desde Delphi? vicvil Tablas planas 3 31-10-2006 17:29:40
Funcion para encontrar un archivo. zugazua2001 Varios 1 04-08-2005 20:59:38


La franja horaria es GMT +2. Ahora son las 07:54:06.


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