• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSFileManager and Resource Forks
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSFileManager and Resource Forks


  • Subject: Re: NSFileManager and Resource Forks
  • From: Jean-Daniel Dupas <email@hidden>
  • Date: Wed, 27 Oct 2010 20:08:04 +0200

Le 27 oct. 2010 à 19:52, email@hidden a écrit :

> Here is my code to write a resource fork for a given file.
>
> 				NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"RSRC" ofType:@"PCSMAC"];
> 				NSString *rsrcPath = [dataPath stringByAppendingString:@"/..namedfork/rsrc"];
> 				NSData *data = [fm contentsAtPath:rsrcPath];
> 				NSString *outPath = [nspath stringByAppendingString:@"/..namedfork/rsrc"];
> 				ok = [fm createFileAtPath:outPath contents:data attributes:nil];
> 				if(!ok)
> 					NSLog(@"Resource fork not written for %@",nspath);
>
>
> dataPath is the path to a file with a resource fork.
> rsrcPath is the path to the resource fork
>
> data does contain the resource fork data ... its size is equal to the size of the resource fork.
>
> outPath is the path to a file to which I want to add the resource fork.
>
>
>
> ok = [fm createFileAtPath:outPath contents:data attributes:nil]; returns NO.
>
> My question is why is the resource fork not being written for outpath?
>
>
> -koko
>
>
>
>
>
> On Oct 27, 2010, at 9:13 AM, Charles Srstka wrote:
>
>> On Oct 26, 2010, at 9:26 PM, email@hidden wrote:
>>
>>> Is there a way to write a resource fork for a file at a path?
>>
>> If you want to read/write individual resources, you’ll have to use the Carbon Resource Manager. However, if you want to read/write the resource map directly to/from the file, you can do that with NSFileManager by appending “/..namedfork/rsrc” to the end of the pathname.
>>
>> Charles
>

No, you don't need the Carbon rsrc manager, you need the CoreServices File Manager, which is available to 64 bits app and AFAIK, the only supported way to save resource forks.
Apple even recommends against using ..namedfork. If you want to access it at BSD level, that last recommendation i saw was to use xattr (http://lists.apple.com/archives/unix-porting/2007/Oct/msg00018.html)

Use FSOpenFork passing the name obtained with FSGetResourceForkName as argument to open the rsrc stream of the file, and then, use FSWriteFork() to write your data.


-- Jean-Daniel




_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: NSFileManager and Resource Forks
      • From: Charles Srstka <email@hidden>
    • Re: NSFileManager and Resource Forks
      • From: "Sean McBride" <email@hidden>
    • Re: NSFileManager and Resource Forks
      • From: email@hidden
References: 
 >Re: NSFileManager and Resource Forks (From: Charles Srstka <email@hidden>)
 >Re: NSFileManager and Resource Forks (From: email@hidden)

  • Prev by Date: Re: NSFileManager and Resource Forks
  • Next by Date: Re: NSFileManager and Resource Forks
  • Previous by thread: Re: NSFileManager and Resource Forks
  • Next by thread: Re: NSFileManager and Resource Forks
  • Index(es):
    • Date
    • Thread