3

ファイルのサイズを決定するために、私は常に以下を使用してきました。

NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil];
unsigned long long size = [fileAttributes fileSize];

ただし、このメソッドattributesOfItemAtPath:error: はシンボリック リンクをトラバースしません。Appleはそう提案します:

パスの項目がシンボリック リンクの場合 (つまりNSFileType、属性辞書のキーの値が である場合)、メソッドを使用して、リンクが指す項目のパスを取得NSFileTypeSymbolicLinkできます。destinationOfSymbolicLinkAtPath:error:

サンドボックスが指定されたファイルへのアクセスを妨げない場合、これは素晴らしいことです:

file-read-xattr を拒否/path/to/the/original/file

それで、私の質問は次のとおりです。OS Xサンドボックスの下のシンボリックリンクが指すファイルのサイズを取得するにはどうすればよいですか?

4

1 に答える 1

3

バグのようです。ユーザーが明確にシンボリック リンクをアプリにドラッグした場合、それはユーザーの意図を明確に示しており、シンボリック リンクとターゲットにアクセスできると期待できます。実際、元のファイルにアクセスしてその内容を読み取ることはできますが、属性を読み取ることはできません。そこで、バグレポート #13143810 を提出しました。

編集:私のバグ レポートは #12991152 の重複としてクローズされましたが、これは実際には「オープン」です。

于 2013-02-08T08:06:16.313 に答える