PDA

Ver la Versión Completa : Obtener archivos de un directorio sin extensión


esocrates
25-06-2008, 19:21:06
En este hilo
http://www.clubdelphi.com/foros/showthread.php?t=10165
se ha discutido el procedimiento para recorrer los archivos de un directorio y recuperar sus nombres en memo [por ej.].
Necesito obtener sólo los nombres de los archivos, sin el path y sin la extensión. [si es c:\temp\cartas.txt, obtener cartas]
Si esto es posible ¿Cómo hacerlo?
Muchas gracias
Un saludo

dec
25-06-2008, 19:38:35
Hola,

De memoria (*):


uses
SysUtils;

function DirectoryName(filePath: string) : string;
begin
result := ChangeFileExt(ExtractFileName(filePath), '');
end;


(*) Igual ni compila... :D :D :D

egostar
25-06-2008, 19:40:04
Como hoy estoy se está festejando el cumpleaños del perro de egostar (http://www.clubdelphi.com/foros/showthread.php?goto=newpost&t=57713) :D:D:D

procedure TForm1.Button1Click(Sender: TObject);
begin
FindFirst('c:\temp\cartas.txt', faAnyFile, SearchRec);
Label1.Caption := copy(ExtractFileName(SearchRec.Name), 1,
pos(ExtractFileExt(SearchRec.Name), ExtractFileName(Searchrec.Name)) - 1);
end;


Salud OS

egostar
25-06-2008, 19:40:44
oops, amigo dec, yo no me sabia esa función :o

Salud OS

dec
25-06-2008, 19:49:41
Hola,


oops, amigo dec, yo no me sabia esa función :o


Bueno, pues ya la sabes. :) ;)

esocrates
25-06-2008, 20:30:54
Gracias por responder.
En realidad no sé cómo implementar el código que Uds.me aportan, es este que es el que uso:

procedure TForm1.Button1Click(Sender: TObject);

procedure RastreaDir(Dir: string);
var
FileSearch: TSearchRec;
begin
chDir ('c:\temp\Cartas');
FindFirst ('*.*', faDirectory, FileSearch);

while FindNext(FileSearch)=0 do
begin
if (FileSearch.Attr = faDirectory) then
begin
if (FileSearch.Name<>'..') then RastreaDir(Dir+FileSearch.Name+'\');
end else


Memo1.Lines.Add(FileSearch.Name);
end;
FindClose(FileSearch);
end;

begin
RastreaDir('c:\Temp\Cartas\');
end;


Muchas gracias
Un saludo

egostar
25-06-2008, 20:33:43
Hola


{Pon aqui lo que quieras hacer con los ficheros encontrados}
{Put here anything to make with the find files}
Memo1.Lines.Add(ChangeFileExt(FileSearch.Name, ''));


Salud OS

esocrates
26-06-2008, 00:04:27
Hola


{Pon aqui lo que quieras hacer con los ficheros encontrados}
{Put here anything to make with the find files}
Memo1.Lines.Add(ChangeFileExt(FileSearch.Name, ''));


Salud OS

Muchas gracias egostar y dec. Funciona perfectamente.
Un saludo