Delen via


Bestandstijden

Een bestandstijd is een 64-bits waarde die het aantal intervallen van 100 nanoseconden aangeeft dat is verstreken sinds 12:00 uur , 1 januari 1601 Coordinated Universal Time (UTC). Het systeem registreert bestandstijden wanneer toepassingen bestanden maken, openen en schrijven naar bestanden.

In het NTFS-bestandssysteem worden tijdwaarden opgeslagen in UTC-indeling, zodat deze niet worden beïnvloed door wijzigingen in de tijdzone of zomertijd. Het FAT-bestandssysteem slaat tijdwaarden op op basis van de lokale tijd van de computer. Een bestand dat is opgeslagen om 17:00 uur PST in Washington wordt bijvoorbeeld gezien als 16:00 est in New York op een NTFS-volume, maar het wordt gezien als 13:00 pm EST in New York op een FAT-volume.

Tijdstempels worden op verschillende tijdstippen en om verschillende redenen bijgewerkt. De enige garantie over een bestandstijdstempel is dat de bestandstijd correct wordt weergegeven wanneer de ingang die de wijziging aanbrengt, wordt gesloten.

Niet alle bestandssystemen kunnen het maken en laatste toegangstijden vastleggen, en niet alle bestandssystemen registreren ze op dezelfde manier. De resolutie van het maken van tijd op FAT is bijvoorbeeld 10 milliseconden, terwijl de schrijftijd een resolutie van 2 seconden heeft en de toegangstijd een resolutie van 1 dag heeft, dus het is echt de toegangsdatum. Het NTFS-bestandssysteem vertraagt updates naar de laatste toegangstijd voor een bestand tot 1 uur na de laatste toegang.

Als u de bestandstijden voor een opgegeven bestand wilt ophalen, gebruikt u de functie GetFileTime. GetFileTime kopieert het maken, de laatste toegang en de laatste schrijftijden naar afzonderlijke FILETIME structuren. U kunt ook bestandstijden ophalen met behulp van de functies FindFirstFile en FindNextFile. Met deze functies worden de bestandstijden gekopieerd naar FILETIME- structuren in een WIN32_FIND_DATA structuur. Wanneer u naar een bestand schrijft, wordt de laatste schrijftijd pas volledig bijgewerkt als alle ingangen die worden gebruikt voor schrijven worden gesloten.

Als u de bestandstijden voor een bestand wilt instellen, gebruikt u de functie SetFileTime. Met deze functie kunt u het maken, de laatste toegang en de laatste schrijftijden wijzigen zonder de inhoud van het bestand te wijzigen. U kunt de tijden van verschillende bestanden vergelijken met behulp van de functie CompareFileTime. De functie vergelijkt twee bestandstijden en retourneert een waarde die aangeeft welke tijd later is of 0 (nul) als de tijden gelijk zijn.

Als u van plan bent om bestandstijden voor opgegeven bestanden te wijzigen, kunt u een datum en tijd van de dag converteren naar een bestandstijd met behulp van de SystemTimeToFileTime functie. U kunt de systeemtijd ook verkrijgen in een FILETIME- structuur door de functie GetSystemTimeAsFileTime aan te roepen.

Gebruik de functie FileTimeToSystemTime om een bestand eenvoudig weer te geven aan een gebruiker. FileTimeToSystemTime converteert de bestandstijd en kopieert de maand, dag, jaar en tijd van de dag van het bestand naar een SYSTEMTIME structuur.

Bestandstijden en zomertijd

U moet ervoor zorgen wanneer u bestandstijden gebruikt als de gebruiker het systeem heeft ingesteld om automatisch aan te passen aan de zomertijd.

Als u een bestandstijd wilt converteren naar lokale tijd, gebruikt u de functie FileTimeToLocalFileTime. FileTimeToLocalFileTime gebruikt echter de huidige instellingen voor de tijdzone en zomertijd. Als het dus zomertijd is, neemt het zomertijd in aanmerking, zelfs als de bestandstijd die u converteert, standaardtijd is.

Het FAT-bestandssysteem registreert tijden op schijf in lokale tijd. GetFileTime- haalt UTC-tijden in de cache op uit het FAT-bestandssysteem. Wanneer het zomertijdtijd wordt, is de tijd die wordt opgehaald door GetFileTime een uur uit, omdat de cache niet wordt bijgewerkt. Wanneer u de computer opnieuw opstart, is de tijd in de cache die GetFileTime ophaalt juist. FindFirstFile haalt de lokale tijd op uit het FAT-bestandssysteem en converteert deze naar UTC met behulp van de huidige instellingen voor de tijdzone en zomertijd. Dus als het zomertijd is, FindFirstFile rekening houdt met zomertijd, zelfs als de bestandstijd die u converteert, standaardtijd is.

Het NTFS-bestandssysteem registreert tijden op schijf in UTC. Gebruik de volgende reeks functies in plaats van FileTimeToLocalFileTimeom rekening te houden met zomertijd wanneer u een bestandstijd converteert naar een lokale tijd:

Bestandstijden en CDFS

De datum- en tijdstempels van bestanden die zich bevinden op of afkomstig zijn van media met CDFS (Compact Disc File System) worden aangepast voor de lokale tijdzone. ISO 9660 geeft aan dat CDFS de datumgegevens correct moet weergeven voor de lokale tijdzone. Dit wordt gedaan zodat datums voor bestanden op CDFS hetzelfde worden weergegeven als die in UDF (Universal Disk Format). UDF is de nieuwere standaard voor distributiemedia. Als uw code afhankelijk is van de ongewijzigde datumgegevens voor een bestand dat zich op een bestand bevindt of afkomstig is van media met CDFS, werkt deze mogelijk niet correct.