2010-02-03 3 views

Répondre

3

Vous pouvez utiliser la méthode -setAttributes:ofItemAtPath:error: de NSFileManager pour définir les attributs de fichier de n'importe quel fichier. Dans ce cas, vous voulez définir la valeur de la clé NSFileExtensionHidden.

Pour appliquer à votre document enregistré, vous pouvez remplacer -writeToURL:ofType:error: dans votre sous-classe NSDocument puis définissez l'extension de fichier caché une fois que le document est enregistré:

- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError 
{ 
    //call super to save the file 
    if(![super writeToURL:absoluteURL ofType:typeName error:outError]) 
     return NO; 

    //get the path of the saved file 
    NSString* filePath = [absoluteURL path]; 

    //set the file extension hidden attribute to YES 
    NSDictionary* fileAttrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] 
                  forKey:NSFileExtensionHidden]; 
    if(![[NSFileManager defaultManager] setAttributes:fileAttrs 
             ofItemAtPath:filePath 
               error:outError]) 
    { 
     return NO; 
    } 
    return YES; 
} 
+0

Merci! Est-ce une approche par fichier ou une approche par type (ou extension)? Est-ce impossible de définir le comportement par défaut de mon type de fichier? – Eonil

+0

Ceci est par fichier, il définit un attribut étendu sur le fichier. Je ne pense pas qu'il existe un moyen de définir cela globalement. –

Questions connexes