Changeset 205

Show
Ignore:
Timestamp:
09/06/07 21:18:12 (1 year ago)
Author:
gbooker
Message:

Exclude non-existing files (for instance, on missing mounts).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/SapphireTVDirectory.m

    r204 r205  
    139139{ 
    140140        [super reloadDirectoryContents]; 
    141         [files addObjectsFromArray:[directory allKeys]]; 
     141        NSFileManager *fm = [NSFileManager defaultManager]; 
     142        NSMutableDictionary *mutDict = [[NSMutableDictionary alloc] initWithDictionary:directory]; 
     143        NSEnumerator *keyEnum = [directory keyEnumerator]; 
     144        NSString *key = nil; 
     145        while((key = [keyEnum nextObject]) != nil) 
     146        { 
     147                SapphireFileMetaData *file = [directory objectForKey:key]; 
     148                if(![fm fileExistsAtPath:[file path]]) 
     149                        [mutDict removeObjectForKey:key]; 
     150        } 
     151        [files addObjectsFromArray:[mutDict allKeys]]; 
    142152        [files sortUsingSelector:@selector(directoryNameCompare:)]; 
    143         [cachedMetaFiles addEntriesFromDictionary:directory]; 
    144         [metaFiles addEntriesFromDictionary:directory]; 
     153        [cachedMetaFiles addEntriesFromDictionary:mutDict]; 
     154        [metaFiles addEntriesFromDictionary:mutDict]; 
     155        [mutDict release]; 
    145156} 
    146157