I'm trying to work with relative aliases and I have problems with
FSResolveAliasWithMountFlags returning paramErr. Here is my setup: I'm
tracking some kind of root folder that is specified by the users and
that can be moved around (including to other computers). This folder
contains a hierarchy of image files to which I want to save a reference
in a database. The obvious way is to keep an absolute alias to the
"root" folder, and in the database, relative (to the "root" folder)
aliases to the image files. That way, the user should be able to move
the "root" folder around, and when it is not found, he should just
indicate where it is, and the image files can be localized thanks to the
relative alias kept in the DB.

But it is not working. When the database is first built (and filled),
the relative aliases work well, but as soon as the "root" folder is
moved on another computer and re-specified by the user,
FSResolveAliasWithMountFlags returns inconsitently paramErr, even if the
hierarchy did not change. (I've triple checked that the FSRef to the
"root" folder is ok.)

Is this a known issue? Does anybody have an idea on it or a workaround?
(I'm considering storing relative path from the root folder, which would
prevent the user to move files around inside the root folder, as soon as
it is included in the DB.)

Thx in advance,
Antoine Beyeler

PS: this is the call:

OSErr err = ::FSResolveAliasWithMountFlags(rootFolderRef,
imageFileAlias, &outRef, &updated, kResolveAliasFileNoUI);