Aracılığıyla paylaş


Dosya Süreleri

dosya süresi, 1 Ocak 1601 Eşgüdümlü Evrensel Saat (UTC) saat 12:00'den bu yana geçen 100 nanosaniyelik aralıkların sayısını temsil eden 64 bitlik bir değerdir. Sistem, uygulamaların dosyaları oluşturması, dosyalara erişmesi ve dosyalara yazması sırasında dosya sürelerini kaydeder.

NTFS dosya sistemi saat değerlerini UTC biçiminde depolar, böylece saat dilimindeki veya yaz saatindeki değişikliklerden etkilenmez. FAT dosya sistemi, bilgisayarın yerel saatlerine göre zaman değerlerini depolar. Örneğin, Washington'da 15:00 PST'de kaydedilen bir dosya, NTFS biriminde New York'ta 18:00 EST olarak görülür, ancak FAT biriminde New York'ta 15:00 EST olarak görülür.

Zaman damgaları çeşitli zamanlarda ve çeşitli nedenlerle güncelleştirilir. Dosya zaman damgasıyla ilgili tek garanti, değişikliği yapan tanıtıcı kapatıldığında dosya süresinin doğru yansıtılmış olmasıdır.

Tüm dosya sistemleri oluşturma ve son erişim sürelerini kaydedemez ve tüm dosya sistemleri bunları aynı şekilde kaydetmez. Örneğin, FAT üzerinde oluşturma süresi 10 milisaniye, yazma süresi 2 saniye ve erişim süresi 1 günlük bir çözünürlüğe sahiptir, bu nedenle gerçekten erişim tarihidir. NTFS dosya sistemi, bir dosyanın son erişim süresine yönelik güncelleştirmeleri son erişimden sonraki 1 saate kadar geciktirmektedir.

Belirtilen bir dosyanın dosya sürelerini almak için getfiletimeişlevinikullanın. GetFileTime oluşturma, son erişim ve son yazma zamanlarını tek tek FILETIME yapılarına kopyalar. FindFirstFile ve FindNextFileişlevlerinikullanarak da dosya sürelerini alabilirsiniz. Bu işlevler dosya sürelerini WIN32_FIND_DATA bir yapıdaki FILETIME yapılarına kopyalar. Bir dosyaya yazarken, yazma için kullanılan tüm tanıtıcılar kapatılana kadar son yazma zamanı tam olarak güncelleştirilmez.

Bir dosyanın dosya sürelerini ayarlamak için SetFileTime işlevini kullanın. Bu işlev, dosyanın içeriğini değiştirmeden oluşturma, son erişim ve son yazma sürelerini değiştirmenizi sağlar. CompareFileTime işlevini kullanarak farklı dosyaların zamanlarını karşılaştırabilirsiniz. İşlev iki dosya zamanını karşılaştırır ve hangi saatin daha geç olduğunu belirten bir değer döndürür veya saat eşitse 0 (sıfır) döndürür.

Belirtilen dosyaların dosya sürelerini değiştirmeyi planlıyorsanız, SystemTimeToFileTime işlevini kullanarak günün tarih ve saatini dosya saatine dönüştürebilirsiniz. GetSystemTimeAsFileTime işlevini çağırarak BIR FILETIME yapısında sistem süresini de elde edebilirsiniz.

Kullanıcıya dosya zamanının görüntülenmesini kolaylaştırmak için FileTimeToSystemTime işlevini kullanın. FileTimeToSystemTime dosya saatini dönüştürür ve ay, gün, yıl ve günün saatini dosya zamanından SYSTEMTIME yapısına kopyalar.

Dosya Saatleri ve Yaz Saati

Kullanıcı sistemi yaz saati için otomatik olarak ayarlayacak şekilde ayarladıysa, dosya sürelerini kullanırken dikkatli olmanız gerekir.

Bir dosya saatini yerel saate dönüştürmek için FileTimeToLocalFileTime işlevini kullanın. Ancak FileTimeToLocalFileTime saat dilimi ve yaz saati için geçerli ayarları kullanır. Bu nedenle, gün ışığından yararlanma saati ise, dönüştürdüğünüz dosya saati standart saat olsa bile gün ışığından yararlanma saatini dikkate alır.

FAT dosya sistemi diskteki saatleri yerel saatle kaydeder. GetFileTime önbelleğe alınmış UTC saatlerini FAT dosya sisteminden alır. Gün ışığından yararlanma saati olduğunda, önbellek güncelleştirilmediğinden GetFileTime tarafından alınan saat bir saat dışındadır. Bilgisayarı yeniden başlattığınızda, GetFileTime alma önbelleğe alınan süre doğru olur. FindFirstFile YEREL saati FAT dosya sisteminden alır ve saat dilimi ve yaz saati için geçerli ayarları kullanarak UTC'ye dönüştürür. Bu nedenle, gün ışığından yararlanma saatiyse, dönüştürdüğünüz dosya saati standart saat olsa bile FindFirstFile yaz saati hesaba katılır.

NTFS dosya sistemi, UTC'de diskteki zamanları kaydeder. Bir dosya saatini yerel saate dönüştürürken gün ışığından yararlanma saatini hesaba katarken FileTimeToLocalFileTimekullanmak yerine aşağıdaki işlev dizisini kullanın:

Dosya Süreleri ve CDFS

Cd Disk Dosya Sistemi (CDFS) kullanılarak medyada bulunan veya medyadan kaynaklanan dosyaların tarih ve saat damgaları yerel saat dilimi için ayarlanır. ISO 9660, CDFS'nin yerel saat dilimi için tarih bilgilerini doğru şekilde görüntülemesi olduğunu belirtir. Bu işlem, CDFS'de dosyaların tarihlerinin Evrensel Disk Biçimi(UDF) ile aynı şekilde görüntülenmesini sağlar. UDF, dağıtım medyası için daha yeni bir standarttır. Kodunuz, CDFS kullanan medyada bulunan veya bu dosyadan kaynaklanan bir dosyanın değiştirilmemiş tarih bilgilerine bağlıysa, düzgün çalışmayabilir.