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