0

Alias Manager 機能を使用してAliasRecord作成していますFSNewAlias(fromFSRef, targetFSRef, &aliasRecordHandle)。私の理解では、結果として得られるエイリアス レコードには、相対パス検索の情報が含まれます ( を基準としたfromFSRef)。私のユーザーはネットワーク上のホーム ディレクトリモバイル アカウントを使用しているため、これらのエイリアスはネットワーク上のホーム ディレクトリとモバイル ホーム ディレクトリの間でユーザーのホーム ディレクトリ内のファイルの場所を保持しているようには見えません。オリジナルがネットワーク アカウントの /Network/.../Users/user/Desktop に対応していた場合、対応する /Users/user/Desktop (つまり、モバイル アカウント)を使用しfromFSRefてエイリアスを解決できるようにしたいと考えています。これは可能ですか?FSResolveAlias(newFromFSRef, aliasRecordHandle, &targetFSRef, &changed)newFSRef

私が頼った解決策は、エイリアス レコードと相対パスを永続化することです。エイリアスの解決に失敗した場合は、相対パスを使用して新しいエイリアスを作成します。

4

1 に答える 1

0

質問で提案されている解決策のようです。エイリアス レコードと相対パスの両方を保持することが唯一の選択肢です。エイリアスの解決に失敗した場合は、(アプリケーションまたはユーザー定義のルートと共に) 相対パスを使用してファイルを見つけようとします。これが成功した場合、エイリアス レコードを新しいパスで更新します。それ以外の場合は、フォールバックしてユーザーに「失われた」ファイルを探すように求めます。

于 2008-11-17T17:57:44.950 に答える