Ferramentas de Usuário

Ferramentas de Site


dev_geral:pascal:snippet:mudar_datahora_fich

Mudar Data/Hora de ficheiros

Program Altera_Data_Hora_Ficheiros;
 
Uses CRT, DOS;
 
Var
 F: File;
 FTime: Longint;
 DirInfo: SearchRec;         { For Windows, use TSearchRec }
 File_DT, DT2CHG: DateTime;
 bFile_DT:array[1..6] of Boolean;
 i: integer;
 
 
Procedure Ajuda;
begin
  Writeln;
  Writeln('Programa: CHG_DT.EXE  -  7/Maio/2012  -  @Pedro Estima');
  Writeln('Permite alterar a data e/ou hora de ficheiro(s) e directoria(s)');
  Writeln;
  Writeln('CHG_DT [Ficheiro]');
  Writeln('CHG_DT [WildCards]');
  Writeln;
end;
 
 
 
 
Procedure Inicializa;
 
 
  Function Valor(opcao:string):word;
  const esc=#27;
  var
    op:char;
    v:word;
 
  begin
    Write('Deseja alterar ',opcao,' [S/N]: ');
    repeat
      op:=upcase(readkey);
    until op in [esc,'N','S'];
    if op=esc then halt;
    write(op);
    if op='S' then begin
      bFile_DT[i]:=True;
      write('   Insira valor para ',opcao,': ');
      readln(v);
      valor:=v;
    end
    else begin
      bFile_DT[i]:=False;
      valor:=0;
      writeln;
    end;
    i:=i+1;
  end;
 
 
begin
  Writeln;
  i:=1;
  DT2CHG.Year:=Valor('Ano');
  DT2CHG.Month:=Valor('Mes');
  DT2CHG.Day:=Valor('Dia');
  DT2CHG.Hour:=Valor('Hora');
  DT2CHG.Min:=Valor('Minutos');
  DT2CHG.Sec:=Valor('Segundos');
end; {Fim Inicializa}
 
 
 
begin
  if ParamCount=0 then Ajuda
  else begin
    Inicializa;
    FindFirst(paramstr(1), AnyFile, DirInfo);
    while DosError = 0 do begin
      Write('Ficheiro: ',DirInfo.Name);
      Assign(f, DirInfo.Name);
      reset(f);
      GetFTime(f,ftime);
      UnpackTime(FTime,File_DT);
      if bFile_DT[1] then File_DT.Year:=DT2CHG.Year;
      if bFile_DT[2] then File_DT.Month:=DT2CHG.Month;
      if bFile_DT[3] then File_DT.Day:=DT2CHG.Day;
      if bFile_DT[4] then File_DT.Hour:=DT2CHG.Hour;
      if bFile_DT[5] then File_DT.Min:=DT2CHG.Min;
      if bFile_DT[6] then File_DT.Sec:=DT2CHG.Sec;
      PackTime(File_DT,FTime);
      SetFtime(f,ftime);
      gotoxy(wherex+5,wherey);
      writeln('OK');
      close(f);
      FindNext(DirInfo);
    end;
  end;
end.

Por passarito.

Tópico de discussão no fórum: Mudar Data/Hora de um ou mais ficheiros
dev_geral/pascal/snippet/mudar_datahora_fich.txt · Última modificação em: 2018/05/14 21:37 (edição externa)