Bir dosyada oluşturma ve değiştirme tarihlerini ayarlamaya çalışıyorum.Ayar NSFileCreationDate'in bir etkisi yoktur
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDate *now = [NSDate date];
NSDictionary *timestampAttr = [NSDictionary dictionaryWithObjectsAndKeys:
now, NSFileCreationDate, now, NSFileModificationDate, nil];
BOOL ret = [fileManager setAttributes:timestampAttr ofItemAtPath:path error:&err];
Değişiklik tarihi, dosya için başarıyla değiştirildi. Oluşturma tarihi değişmedi. Niye ya?
ret
doğru ve err
sıfırdır. -attributesOfItemAtPath
, her iki anahtar da timestampAttr
ve doğru (değiştirilmiş) değişiklik tarihini ve yanlış (değiştirilmemiş) oluşturma tarihini içeren bir sözlük döndürür.
Düzenleme: OS X sürüm 10.6 kullanma. Xcode projesinin temel SDK'sı 10,5'tir. Dosya, bilgisayarımın tek sabit sürücüsünde (RAID yok), ana klasörümdeki bir klasörde. Bu, bir fark yaratırsa uygulama paketinin içinde yer alır.
Düzenleme: Bu basit bir örnek çalışır:
#import <Cocoa/Cocoa.h>
int main(void)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSFileManager *m = [NSFileManager defaultManager];
NSString *path = ...;
[m setAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSDate date],NSFileCreationDate,nil] ofItemAtPath:path error:nil];
[pool drain];
return 0;
}
(benim masaüstünde) basit örnekle aynı dosya için özellikleri ayarlayarak, ben aslen hakkında sorulan app içine yukarıdaki kodu yapıştırılan. Kod uygulamanın içinde olduğunda, çalışmaz.
Düzenleme: Tamam, bu çılgınlık. Yukarıdaki basit örnek çalışıyordu (iş arkadaşım ve ikimiz de bilgisayarımda çalışıyordu) ama şimdi çalışmıyor.
teşekkürler. Düzenlememe bak. – jlstrecker