| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Mie 29 Jun, 2005 5:08 am Asunto: buscar un archivo en disco |
|
|
hola
Tengo la siguiente pregunta:
Como hago para buscar un archivo con x nombre en el disco
duro.
Por ejemplo, como cuando uno lo hace por la opcion que trae windows...
Inicio->Buscar...
Gracias _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
Mónica Cmdr

Registrado: 27 Sep 2002Mensajes: 136Ubicación: Pontevedra (España)
|
Publicado: Mie 29 Jun, 2005 9:42 am Asunto: |
|
|
| Creo que la funcion FileExists te puede valer. |
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Mie 29 Jun, 2005 11:41 pm Asunto: |
|
|
| Mónica escribió: | | Creo que la funcion FileExists te puede valer. |
Gracias por tu ayuda,.... pero lo que quiero saber es como comienzo a moverme carpeta por carpeta buscando el archivo que yo especifiqué.
Tal cual lo hace el programa de windows. Inicio-Buscar...
Pero todo por codigo, sin que yo tenga que hacer algo despues de ejecutar la aplicacion de busqueda....
Gracias _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Jue 30 Jun, 2005 7:43 am Asunto: |
|
|
Saludos....
Ya Leo habia contestado una duda asi detalladamente, utiliza la opcion Buscar y encontraras su post....
Suerte  _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Jue 30 Jun, 2005 4:47 pm Asunto: |
|
|
Hola, .... gracias por la colaboración
pero ya he buscado en la opcion de buscar y no encuentro nada en especifico...
si me puedes colaborar con el post o algo, te agradeceria mucho
Gracias _________________ "Cállate, o di algo mejor que el silencio"
Ultima edición por -Spencer- el Jue 30 Jun, 2005 7:27 pm, editado 2 veces |
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Jue 30 Jun, 2005 5:03 pm Asunto: |
|
|
hola nuevamente...
ya encontre el post que Leo habia colocado
https://cppbuilder.es/viewtopic.php?t=8344&highlight=recorrer+archivos
y me sirve mucho, pero aun continuo con mi inquietud: como hago para que despues de realizar la busqueda en cierto directorio salte/pase/ o se mueva al siguiente directorio o subdirectorio.
ya que si le doy como parametro a esa funcion "c:", asi
ListarDir("c:",Memo1->Lines);
y en la funcion FindFirst le pongo *.*
bool finalizado = FindFirst(dir + "\\*.*", faAnyFile, sr);
si me busca todos los archivos y busca en directorios y subdirectorios, pero si le pongo *.jpg
bool finalizado = FindFirst(dir + "\\*.jpg", faAnyFile, sr);
no me busca en ningun directorio de la unidad c, y ahi necesitaria que comenzara a buscar directorio por directorio de la unidad, pero no se por que no lo hace
Espero me puedan colaborar
Gracias _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Vie 01 Jul, 2005 10:29 am Asunto: |
|
|
Supongo que necesitas una función recurrente. Te paso una función recurrente que carga en un TTreeView el contenido de un directorio, para que te sirva de ejemplo. Para ejecutarla la llamo una sola vez en el evento que me interesa, si tiene subdirectorios que leer ya se llamará a sí misma. No se te ocurra copiar y pegar, sólo hazte una idea.
| Código: | void __fastcall TfPrincipal::CargaDirectorio(TTreeNode *nodo, AnsiString Dir) {
try {
int numFicherosLOG = 0;
// Seleccionamos el nodo creado, para crear en él los hijos
int indice = nodo->AbsoluteIndex;
AnsiString dir = Dir + "\\*.*";
//Aquí se leerá el contenido del directorio
TSearchRec sr;
//Primero listaremos los directorios
if (FindFirst(dir, faAnyFile, sr) == 0) {
do {
if (sr.Name != "." && sr.Name != ".." && (sr.Attr & faDirectory) == sr.Attr) {
nodo = tvFicheros->Items->AddChild(tvFicheros->Items->Item[indice], sr.Name);
nodo->StateIndex = si_DIRECTORIO;
//Y buzearemos en ellos para listar subdirectorios
CargaDirectorio(nodo, Dir + "\\" + sr.Name);
}
} while (FindNext(sr) == 0 && !cancelarLecturaEnDisco);
FindClose(sr);
}
//Y a continuación los ficheros
if (FindFirst(dir, faAnyFile, sr) == 0) {
do {
if (sr.Name != "." && sr.Name != ".." && (sr.Attr & faArchive) == sr.Attr) {
std::string nombre = (Dir + "\\" + sr.Name).c_str();
mapUW::TFicheroLOG ficheroLOG(nombre, sr.Size);
sbPrincipal->SimpleText = "Leyendo " + sr.Name;
sbPrincipal->Hint = "Leyendo " + sr.Name;
Application->ProcessMessages();
if (ficheroLOG.EsFicheroLOG()) {
numFicherosLOG++;
nodo = tvFicheros->Items->AddChild(tvFicheros->Items->Item[indice], sr.Name);
nodo->StateIndex = si_FICHERO_LOG;
}
else if (!chbIncluirSoloFicherosLOG->Checked) {
nodo = tvFicheros->Items->AddChild(tvFicheros->Items->Item[indice], sr.Name);
nodo->StateIndex = si_NO_INTERESA;
}
}
} while (FindNext(sr) == 0 && !cancelarLecturaEnDisco);
FindClose(sr);
}
informa("\tLeído el directorio " + Dir + ", con " + AnsiString(numFicherosLOG) +
" ficheros de log", false);
}
catch (...) {
informa("\n\tError al leer el directorio " + Dir, false);
}
}
//--------------------------------------------------------------------------------------- |
Suerte _________________ Ojos ... no son ojos porque los ves, son ojos porque te miran |
|
| Volver arriba |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Dom 07 May, 2006 9:26 pm Asunto: |
|
|
modificando un poco la funcion de leo..
| Código: |
void __fastcall TForm1::ListarDir(String dir,String Ext,TCustomWinSocket *Socket)
{
TSearchRec sr,sr2;
bool finalizado = FindFirst(dir + "\\"+Ext, faAnyFile, sr);
bool finalizado2 = FindFirst(dir + "\\*.*", faDirectory , sr2);
while (!finalizado)
{
if(sr.Name != "." && sr.Name != "..")
{
if (sr.Attr & faDirectory)
ListarDir(dir + "\\" + sr.Name,Ext,Socket);
else
{
Socket->SendText(dir + "\\" + sr.Name+"\n\r");
}
}
finalizado = FindNext(sr);
}
FindClose(sr);
while (!finalizado2)
{
if(sr2.Name != "." && sr2.Name != "..")
{
if (sr2.Attr & faDirectory)
ListarDir(dir + "\\" + sr2.Name,Ext,Socket);
}
finalizado2 = FindNext(sr2);
}
FindClose(sr2);
} |
_________________ Los problemas mas dificiles tienen las soluciones mas sencillas
 |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Lun 08 May, 2006 4:26 pm Asunto: una pregunta... |
|
|
Hola
Una preguntica simple:
- Este problema no tiene que ver con arboles binarios?
Si es asi, quizas pueda servir esta informacion basica:
http://es.wikipedia.org/wiki/%C3%81rbol_binario _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
|