1

我正在制作一个使用文档包(包)作为数据的 Cocoa 应用程序。我指定了一个扩展名,Finder 现在可以很好地将具有该扩展名的文件夹识别为文档。但是文件夹的扩展名仍在显示,我想默认隐藏它(如应用程序包)有没有一个选项可以做到这一点?

4

1 回答 1

3

您可以使用 的-setAttributes:ofItemAtPath:error:方法NSFileManager来设置任何文件的文件属性。在这种情况下,您要设置NSFileExtensionHidden键的值。

要将其应用于您保存的文档,您可以-writeToURL:ofType:error:NSDocument子类中覆盖,然后在保存文档后将文件扩展名设置为隐藏:

- (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;
}
于 2010-02-09T01:00:08.127 回答