我試圖設置文件的創建和修改日期。設置NSFileCreationDate沒有效果
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];
對文件成功修改修改日期。創建日期不變。爲什麼?
ret
爲真,err
爲零。 -attributesOfItemAtPath
返回一個字典,其中包含timestampAttr
中的密鑰以及正確的(修改的)修改日期和不正確的(未修改的)創建日期。
編輯:使用OS X版本10.6。 Xcode項目的基礎SDK是10.5。文件位於我的計算機唯一的硬盤驅動器(無RAID)中,位於我的主文件夾內的文件夾中。 該文件位於應用程序包中,如果這有所幫助。
編輯:這個簡單的例子工程:
#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;
}
我粘貼上面的代碼進入應用程序,我原來問了一下,設置爲同一個文件的簡單例子屬性(我的桌面上)。當代碼在應用程序中時,它不起作用。
編輯:好的,這太瘋狂了。上面的簡單例子是工作(我的同事和我都看到它在我的電腦上工作),但現在它不工作。
謝謝。看我的編輯。 – jlstrecker