Dosya değiştirilme tarihini hangi komutla değiştirebilirim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aligel54
Üye
Mesajlar: 41
Kayıt: 20 Nis 2009 11:34

Dosya değiştirilme tarihini hangi komutla değiştirebilirim

Mesaj gönderen aligel54 »

Bir uygulamada elle müdahale edilen verileri yedek txt dosyadan da değiştiriyorum.

Fakat değiştirdiğimde dosyanın değiştirilme tarihi de değişiyor.

Örneğin 10.07.2020 tarihinde oluşturulmuş-değiştirilmiş dosyayı düzenleyip kaydettiğimde değiştirilme tarihi 05.01.2021 oluyor.
Dolayısıyla denetimci bunu görüp bu yedeğe de müdahale edilmiş diyebilir.

Bu yedek dosyayı kaydetmeden bilgisayarın tarihini o tarihe getirmem gerekiyor.
Tabi bu işlemi 100 lerce dosyada yaptırmak için yazdığım programın bunu yapması gerekiyor.
Tarih değişince de programın çalıştığı veri tabanı kapanıyor. (Mysql)

Bilgisayarın tarihini değiştirmeden, dosyanın özniteliğini -değiştirilme tarihini düzenleyebileceğim bir komut olmalı.

Bunu nasıl yapabilirim, ya da hangi kütüphanedeki komutları incelemeliyim?
Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Dosya değiştirilme tarihini hangi komutla değiştirebilirim

Mesaj gönderen ertank »

Merhaba,

Eğer son sürümlere yakın bir Delphi sürümünüz var ise aşağıdaki gibi bir kod deneyebilirsiniz. Ancak yaptığınız iş çok etik durmuyor.

Kod: Tümünü seç

uses
  System.IOUtils;

procedure TForm2.Button1Click(Sender: TObject);
const
  Filename = 'E:\0-DevelopmentCodeTests\file_modification_time\new 1.txt';
var
  ADate: TDateTime;
begin
  if TFile.Exists(Filename) then
  begin
    ADate := TFile.GetLastWriteTime(Filename); // Dosya son değşiklik zamanını saklıyoruz.
    TFile.AppendAllText(Filename, 'test' + sLineBreak); // Dosya son güncelleme tarih saati bu işlem ile değişir
    TFile.SetLastWriteTime(Filename, ADate); // Dosya eski değişiklik zamanına geri çekiyoruz
  end;
end;
aligel54
Üye
Mesajlar: 41
Kayıt: 20 Nis 2009 11:34

Re: Dosya değiştirilme tarihini hangi komutla değiştirebilirim

Mesaj gönderen aligel54 »

Öncelikler cevabın için teşekkür ederim.

Maalesef Delphi 7 sürümünü kullanmaktayım ve System.IOUtils kütüphanesi bulunmamakta..
System ya da SysUtils kütüphanelerinde benzer komutları arayacağım.
Bir handikap ise Delphi 7 nin yardımı Windows 10 da çalışmaması.

Etik durmama konusuna gelirsek... Sonuna kadar haklısın.
Hiç bir bahane de bu haklılığa gölge düşüremez. En başta kendimiz dosdoğru olup başkasına da örnek olmalıyız.
Ama gel gör ki şu nefis..

Deveye boynun neden eğri demişler, nerem doğru ki demiş.

Bizim Personel takip sektöründe karşılaştığımız müşterilerimizden büyük çoğunluğu işçisinin haklarını gözeterek çalıştırmaz. İşlerine ne gelirse kural odur.
Maalesef bunlara şahit oluyorz.
Belki yeri değil ama yine söyliyim içimde kalmasın.
Örneğin devlet haftada 45 saat, aylık tatillerle birlikte 225 saat çalıştıracaksın der, ama işverenlerin %90 ı buna uymaz.
(%90 fazla iyimser oldu, %99 bile daha gerçekçi)

11 saat, 12 saat, hatta şahit oluyoruz 13 saat çalıştırdıkları kölelerini, pardon personelini.. görüyoruz. ve bunların çalışma sistemini hesaplamamızı istiyorlar.
Müşteriye diyemiyoruz ki sen ne yapıyorsun. Android işçi mi bunlar bunlar insan değil mi diyemiyorsun.
Hangi birine diyeceksin. İşte etiklik orda darma duman oluyor. ..

Ha bu isteği benden yapan firmalar bunların en az zalimi,
Levis Nike vs gibi büyük firmaların taşeronluğunu yapan firmalar
Sıkı denetim içindeki... (Taşeronluk da ne kadar etikse artık..)

Yani bunlar işçisini günde 7,5 saat çalıştırmalılar, arada sırada en fazla 1,5 saat mesaiye kalabilirler. Çok sık olmamak üzere...
Ama bazen kritik durumdaki kişiler ya da 1-2 gün topluca 2-3 saat mesaiye kalınabiliyor. Bu gibi durumları törpülemek isteyenler
Zaten her zaman olsa, 2-3 saat fazla çalıştırsalar bu firmalar kesinlikle yakalarlar. Sen programda ne yaparsan yap
İşçinini biri çıkar biz hergün şöyle şöyle çalışıyoruz der.
Ama buralarda işçi de işveren de memnun...

Keşke hep istekler bunların istediği gibi masum... en azından bu kadar az zalim olabilseler.

Haa bahane mi.. değil elbette.. Etik değil.
Off ne toplamışım içimde...
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Dosya değiştirilme tarihini hangi komutla değiştirebilirim

Mesaj gönderen ertank »

Aşağıdaki bağlantıda kabul edilen yanıtı inceleyebilirsiniz. Dosya zamanlarını okuma için örnek kod içeriyor.
https://stackoverflow.com/questions/920 ... ws-propert

Aşağıdaki bağlantıda ise dosya değişiklik zamanı değiştirme örneği verilmiş.
https://stackoverflow.com/questions/755 ... -of-a-file

Bunlar nisbeten eski soru ve yanıtlar olmasına istinaden Delphi 7 ile çalışacağını düşünüyorum.
Cevapla