fileModificationDate - NSFileModificationDate
Returns the value for the key
NSFileModificationDate.
- (NSDate *)fileModificationDate
Return Value
The value for the key
NSFileModificationDate, or nil if the dictionary doesn’t have an entry for the key.Discussion
This and the other
file... methods are for use with a dictionary, such as those returned from the methodsfileAttributesAtPath:traverseLink: (NSFileManager), directoryAttributes(NSDirectoryEnumerator), and fileAttributes (NSDirectoryEnumerator), that represents the POSIX attributes of a file or directory. This method returns the date that the file’s data was last modified.
Example of [NSDictionary NSFileModificationDate]
while (file = [dirEnum nextObject]) {
NSLog(@"File = %@",file);
NSError *attributesError = nil;
file = [docsDir stringByAppendingPathComponent:file];
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:file error:&attributesError];
NSDate *fileModificationDate = [fileAttributes objectForKey:NSFileModificationDate];
NSLog(@"ModDate = %@",fileModificationDate);
}
}
Example of [NSDictionary NSFileModificationDate]
NSError * err;
NSFileManager * myManager = [NSFileManager defaultManager];
NSString * myPath = [[NSBundle mainBundle] bundlePath];
NSDictionary * myDict = [myManager attributesOfItemAtPath:myPath error:&err];
NSDate * myDate = [myDict objectForKey:@"NSFileModificationDate"];
NSLog(@"%@", myDate);
2011-01-26 21:32:29.985 scraptime2[11488:207] 2011-01-27 03:32:27 +0000
Example of [NSDictionary NSFileModificationDate]
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsPath = [searchPaths objectAtIndex: 0];
NSError* error = nil;
NSArray* filesArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsPath error:&error];
if(error != nil) {
NSLog(@"Error in reading files: %@", [error localizedDescription]);
return;
}
// sort by creation date
NSMutableArray* filesAndProperties = [NSMutableArray arrayWithCapacity:[filesArray count]];
for(NSString* file in filesArray) {
NSString* filePath = [iMgr.documentsPath stringByAppendingPathComponent:file];
NSDictionary* properties = [[NSFileManager defaultManager]
attributesOfItemAtPath:filePath
error:&error];
NSDate* modDate = [properties objectForKey:NSFileModificationDate];
if(error == nil)
{
[filesAndProperties addObject:[NSDictionary dictionaryWithObjectsAndKeys:
file, @"path",
modDate, @"lastModDate",
nil]];
}
}
// sort using a block
// order inverted as we want latest date first
NSArray* sortedFiles = [filesAndProperties sortedArrayUsingComparator:
^(id path1, id path2)
{
// compare
NSComparisonResult comp = [[path1 objectForKey:@"lastModDate"] compare:
[path2 objectForKey:@"lastModDate"]];
// invert ordering
if (comp == NSOrderedDescending) {
comp = NSOrderedAscending;
}
else if(comp == NSOrderedAscending){
comp = NSOrderedDescending;
}
return comp;
}];