Data ostatniej zmiany modyfikacji pliku - modyfikowalna ?

0

Wiem, że mogę głupię pytanie (samo w sobie sprzecznę), ale zaryzukję.
Znam funkcję którą odczytuje datę ostatniej zmiany modyfikacji pliku.
np.TDateTime Dt;
Dt = FileDateToDateTime(FileAge(nazwa));
String Data = Dt.FormatString("hh:nn:ss, dd.mm.yyyy");


Jednak czy jest możliwość programowej zmiany tejże daty ?
0
BOOL SetFileTime(
  HANDLE hFile,                      // handle to the file
  CONST FILETIME *lpCreationTime,    // time the file was created
  CONST FILETIME *lpLastAccessTime,  // time the file was last 
                                     // accessed
  CONST FILETIME *lpLastWriteTime    // time the file was last written
);
0

Dzięki Twojej informacji trochę poszukałem. Żeby sprawdzić to co wyszukałem mam taki oto kod w BCB:

if(OpenDialog1->Execute())
{
HANDLE hFile ;
hFile = CreateFile(OpenDialog1->FileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
FILETIME ft;
SYSTEMTIME st;

GetSystemTime(&st);
SystemTimeToFileTime(&st, &ft);
SetFileTime(hFile, (LPFILETIME) NULL, (LPFILETIME) NULL, &ft);
}



czyli teoretycznie zmianę dat modyfikacji na aktualny czas. Ale on nie działa, dlaczego ?
0

plik musi być otwarty do zapisu czyli:

hFile = CreateFile(OpenDialog1->FileName.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);

0

To może ja się dołącze do pytania, czy to działa ze wszystkimi plikami, czy tylko z tekstowymi ? (może troche głupie pytanie, jeśli tak to wybaczcie :P )

0

Nie potraktuj mojej odpowedzi jako docinki, sam przecież w pierwszym pytaniu, że wyjdę na głupka. Proponuję test: Włącz właściwości dowolnego pliku i popatrz na takie wartości jak: Utworzony, Zmodyfikowany, Ostatnio używany :].

Dzięki za odpowiedź

0

Albo mi się wydaje albo samoistnie gubią mi się słowa :P.
Wypowiedź pierwsza: brakuje zadać
Wypowiedź trzecia: brakuje myślałem

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0