Определить дату создания файла на iPhone OS? - PullRequest
7 голосов
/ 17 марта 2010

Я планировал написать некоторый код, логика которого основывалась на проверке даты создания определенного файла в папке «Мои документы» моего приложения.Оказывается, когда я вызываю - [NSFileManager attributeOfItemAtPath: error:], NSFileCreationDate не является одним из предоставленных атрибутов.

Нет способа определить дату создания файла?

Спасибо.

Ответы [ 2 ]

8 голосов
/ 21 мая 2011

fileCreationDate действительно является частью словаря. Вот метод, который получает файловый URI и получает некоторые атрибуты из файла:

- (NSDictionary *) attributesForFile:(NSURL *)anURI {

// note: singleton is not thread-safe
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *aPath = [anURI path];

if (![fileManager fileExistsAtPath:aPath]) return nil;

NSError *attributesRetrievalError = nil;
NSDictionary *attributes = [fileManager attributesOfItemAtPath:aPath
                           error:&attributesRetrievalError];

if (!attributes) {
   NSLog(@"Error for file at %@: %@", aPath, attributesRetrievalError);
   return nil;
}

NSMutableDictionary *returnedDictionary = 
   [NSMutableDictionary dictionaryWithObjectsAndKeys:
        [attributes fileType], @"fileType",
        [attributes fileModificationDate], @"fileModificationDate",
        [attributes fileCreationDate], @"fileCreationDate",
        [NSNumber numberWithUnsignedLongLong:[attributes fileSize]], @"fileSize",
    nil];

return returnedDictionary;
}
1 голос
/ 17 марта 2010

Согласно справка Apple , NSFileCreationDate доступна в 2.0 +:

NSFileCreationDate Ключ в файле словарь атрибутов, значение которого указывает дату создания файла.

Соответствующее значение является NSDate объект.

Доступно в iPhone OS 2.0 и более поздних версиях.

Объявлено в NSFileManager.h.

...