Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-06-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Detectar creacion de carpeta nueva.

Buenos dias amigos.

Estoy intentando crear un porgramita que notifique, y guarde el nombre de las carpetas que son creadas, es decir, poder detectar el evento que se da, cuando se crea un carpeta nueva, sin necesidad de hacer iteraciones con todos los directorios,,,,,
Se produce algun evento o Msg, cuando se crea una carpeta nueva??

Gracias!

De que otra forma se puede hacer?

Muchisisimas gracias!
Responder Con Cita
  #2  
Antiguo 12-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

Utiliza la las funciones que dejé en éste hilo!

Suerte!
Responder Con Cita
  #3  
Antiguo 13-06-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Alguna forma de hacerlo en C++ Builder?

Hola, muchas gracias,
He leido sobre la funcion,
pero no manejo delphi, sino C++ Builder, ,,,
Algun ejemplo en Builder???
Gracias!
Responder Con Cita
  #4  
Antiguo 13-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

Ahhhh, haberlo dicho antes, no problem! bajate el zip de ésta página, si no te sirve en google encontrarás muchos ejemplillos de lo mismo... solo debes recordar el nombre de la API FindFirstChangeNotification y si sabes algo de Delphi pues usa como idea lo que deje anteriormente.

Suerte!
Responder Con Cita
  #5  
Antiguo 13-06-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
obtener nombre de archivo o carpeta con FindFirstChangeNotification

o ForMultipleObjects.

Hola amigos, estoy intentando saber el nombre del archivo que fue agregado sea directorio o file.
ya logre que me muestre un mensaje para cuando el usuario modifique la carpeta (agregue o quite files), peroooo ahora lo mas importante es conocer el nombre del nuveo archivo insertado!
Gracias amigos
Responder Con Cita
  #6  
Antiguo 13-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

Ese problema lo solucione en el hilo que deje como referencia al primer post del hilo, simplemente debes hacer una lista de los archivos y carpetas existentes... cuando ocurre una modificacion haces de nuevo el recorrido por la carpeta. Los archivos/carpetas que ya existan en la lista los borras, los que no los añades. así tendras la lista. Verifica un poco de lo que deje con anterioridad, especificamente el manejo de la lista.

Suerte.
Responder Con Cita
  #7  
Antiguo 13-06-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Muchas gracias!

Gracias por tu colaboracion!
pero tengo un problema grave,,,,
Manejo C++ Builder, y me da mucha dificultad traducir tu codigo,,,,

podrias ayudarme? o sera mucho pedir??
Muchas gracias, de veras lo necesito urgente....
Responder Con Cita
  #8  
Antiguo 14-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool No problem

Cita:
Empezado por JuanErasmo
...pero tengo un problema grave,,,,
Manejo C++ Builder, y me da mucha dificultad traducir tu codigo,,,,
Creo que ya me quedo claro con tu segundo post amigo!

Cita:
Empezado por JuanErasmo
...podrias ayudarme? o sera mucho pedir??...
Aunque me parece un poco agrasivo tu comentario, hare lo que pueda pues yo programo en Delphi y bueno al grano; encontre un foro que tiene parte de lo que necesitas... y la otra que necesitas esta acá. Yo se que no entenderas todo lo escrito en el foro, pero intenta comparar el código con el que yo hice en Delphi... las APIs son las mismas.

Ahora te explico un poco: es como si hicieras DIR, (te explico así pues es un idioma que estoy seguro ambos entenderemos), la lista de este dir la guardas en un TStrings que es un vector de cadenas. Hecho esto esperas a que el WaitForSingleObject se dispare con un cambio en el directorio, cuando ésto sucede vuelves a usar la API FindFirstFile, FindNextFile, etc... pero en ves de llenar los nombres en la lista, buscas los nombres, borras, los items que ya existan, y los que no los añades (en la misma lista claro).

Código Delphi [-]
var List: TStrings; // Es el vector de cadenas
 
var Handle: Cardinal; Index: Integer; FindData: TWin32FindData; // declaracion de variables
begin
 List.Clear;  // Limpio la lista
 Handle := FindFirstFile(PChar(Path + '\*.*'), FindData); // Inicias el listado
 repeat
  if (FindData.cFileName <> '.') and (cFileName <> '..') then // Si el nombre encontrado no es '.' ni '..'
   List.Add(FindData.cFileName);                                         // Lo añado en la lista
 until not FindNextFile(Handle, FindData);        // repito hasta que la API FindNextFile me diga que ya no hay archivos
 FindClose(Handle);  // y cierro la busqueda
end;

Lo anterior crea la lista... lo otro no es muy diferente:

Código Delphi [-]
begin
 Handle := FindFirstFile(PChar(Path + '\*.*'), FindData); // Inicias el listado
 repeat
  if (FindData.cFileName <> '.') and (cFileName <> '..') then // Si el nombre encontrado no es '.' ni '..'
   begin
    Index := List.IndexOf(FindData.cFileName);  // a la variable Index le asigno la posicion en mi lista
    if Index <> -1 then // cuando NO es -1, significa que existe en la lista, entonces
     List.Delete(Index)  // lo borro
    else   // caso contrario
     List.Add(FindData.cFileName); // Lo agrego
   end;
 until not FindNextFile(Handle, FindData);
 FindClose(Handle);
end;

Lo que hice es borrar los que ya existian, y añadir los nuevos... me quedan todos los cambios en la estructura del directorio que queremos ver.

Espero sea mas iluminador en este post, ademas las APIs se repiten y es muy parecido con el Delphi...

PD: Me gustaria que lo pruebes al Delphi!

Suerte
Responder Con Cita
  #9  
Antiguo 15-06-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
gracias!

Muchas gracias!
lo intentare!
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
al detectar unidad q no se muestre ventana de abrir carpeta kapullok_2006 API de Windows 3 04-05-2007 00:33:56
Capturar ruta de acceso a la carpeta mis documentos y a la carpeta activa. Pepe Torres API de Windows 1 23-02-2007 23:02:21
Nueva PC vtdeleon Noticias 2 10-12-2005 01:44:41
Creacion de una carpeta manera remota noir Conexión con bases de datos 2 01-06-2005 23:29:34
Como detectar la URL de una "página nueva" Delphius Internet 6 10-08-2004 20:44:22


La franja horaria es GMT +2. Ahora son las 21:23:10.


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