• 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
Creating alias programatically
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Creating alias programatically


  • Subject: Creating alias programatically
  • From: chaitanya pandit <email@hidden>
  • Date: Wed, 24 Sep 2008 00:43:15 +0530

Hi,
I've been struggling with for quite a while now, what i want to achieve is create an alias of a folder at some location. The alias would also be a folder like we have after creating an alias in the finder.
say i have a folder "foo" in "/Users/me/Documents/foo" and i want to programatically create an alias of that folder on my desktop "/Users/ me/Desktop/fooalias"
how can i do that?
to start with AFAIK i need to create an FSRef for both the paths and then create an alias using FSNewAlias.
But if i try to create an FSRef for "/Users/me/Desktop/ fooalias" (which doe snot exist) it gives me error saying "can't get path".
I considered using BDAlias ( http://eschatologist.net/bDistributed.com/index.html ), but how can i use it to actually create the alias folder?


Here is my code snippet

// aliasPath:-  path at which to create the alias folder
// targetPath:- the actual path the alias would be referring to

+ (void)createAliasforTargetPath:(NSString *)targetPath aliasPath: (NSString *)aliasPath
{
FSRef ailasRef;
OSErr err = FSPathMakeRef((const UInt8 *)[aliasPath fileSystemRepresentation], &ailasRef, NULL);
if(err != noErr)
NSLog(@"Error creating alias FSRef");
else
{
FSRef targetRef;
err =FSPathMakeRef((const UInt8 *)[targetPath fileSystemRepresentation], &targetRef, NULL);
if(err != noErr)
NSLog(@"Error creating alias's target FSRef");
else
{
AliasHandle aliasHandle;
err = FSNewAlias(&targetRef, &targetRef, &aliasHandle);
if(err != noErr)
NSLog(@"Error creating alias handler");
else
{
int fd = open([aliasPath UTF8String], O_WRONLY | O_CREAT |
O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO);
if(fd == -1)
perror("store-open");
else
{
HLock((Handle)aliasHandle);
long handleSize = GetHandleSize((Handle)aliasHandle);
int wrote = write(fd, &handleSize, sizeof(long));
wrote = write(fd, *aliasHandle, handleSize);
close(fd);

HUnlock((Handle)aliasHandle);

printf("store-wrote file\n");
}
}
}
}
}


I'd appreciate if some one can help me with this,
Thanka,
Chaitanya
_______________________________________________

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: Creating alias programatically
      • From: "Sean McBride" <email@hidden>
    • Re: Creating alias programatically
      • From: Ken Thomases <email@hidden>
    • Re: Creating alias programatically
      • From: Nick Zitzmann <email@hidden>
  • Prev by Date: Re: Adding external library in cocoa app
  • Next by Date: Re: Creating alias programatically
  • Previous by thread: Re: Adding external library in cocoa app
  • Next by thread: Re: Creating alias programatically
  • Index(es):
    • Date
    • Thread