Ver Mensaje Individual
  #2  
Antiguo 26-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Paulao.
Cita:
Quiero crear una serie de carpetas una a dentro de otra y despues mover un archivo para esta carpeta. La regla es esta:
La primera regla es crear una carpeta con los 4 primer substring(Copy(String,1,4)). Bueno, despues, viene otra carpeta que es la posicion 5 y 6 y despues la posicion 7 y 8. Quando terminar todo, entonces si mueve el archivo para esta carpeta, ademas todos los archivos.
Por lo que pude entender, este procedimiento hace lo que estas buscando:
Código Delphi [-]
procedure PasarArchivos(Origen, Destino: string);
var
  SR: TSearchRec;
  Nombre: string;
begin
  Origen:= IncludeTrailingPathDelimiter(Origen);
  Destino:= IncludeTrailingPathDelimiter(Destino);
  if FindFirst(Origen+'*.*',faArchive,SR) = 0 then
  begin
    Nombre:= Copy(ExtractFileName(SR.Name),1,
             Length(ExtractFileName(SR.Name))-
             Length(ExtractFileExt(SR.Name)));
    ForceDirectories(Destino+Copy(Nombre,1,4));
    ForceDirectories(Destino+Copy(Nombre,1,4)+'\'+Copy(Nombre,5,2));
    ForceDirectories(Destino+Copy(Nombre,1,4)+'\'+Copy(Nombre,5,2)+'\'+
                     Copy(Nombre,7,2));
    repeat
      CopyFile(PChar(Origen+SR.Name),PChar(Destino+Copy(Nombre,1,4)+'\'+
               Copy(Nombre,5,2)+'\'+Copy(Nombre,7,2)+'\'+SR.Name),False);
    until FindNext(SR) <> 0;
  end;
end;
Toma el primer nombre de archivo de la carpeta origen. De donde extrae las cadenas para crear la carpeta, la sub-carpeta y la sub-sub-carpeta. Por último copia los archivos de la carpeta orígen allí.

Nota: El código no realiza ninguna comprobación. (Como por ejemplo que haya un nombre de archivo con menos de 8 caracteres).


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita