8

オンライン読書とオフライン読書(ダウンロードによる)の両方をサポートするコミックリーダーアプリを作成しようとしています。

画像キャッシュとしてSDWebImageをサポートする画像ビューアとしてMWPhotoBrowserを見つけました。

私の問題は、あるユーザーがコミックの一部をオンラインで読んだ後、それをダウンロードしてオフラインで読むことにした場合です。すでに読み取った部分はSDWebImageによってキャッシュされるので、Webサーバーから再度ダウンロードしたくありません。しかし、ユーザーがそれらをローカルにダウンロードするように要求するので、ダウンロードした画像が手に負えなくなるので、画像キャッシュにそれらを保持したくありません。

画像を画像キャッシュから配置したい場所にコピーすることは実行可能な解決策ですが、ストレージスペースが必要になります。だから、私がやろうとしているのは、画像を画像キャッシュから適切な場所に切り取ってから、画像キャッシュにソフトリンクを作成することです。このように、ストレージファイルシステムにはイメージコピーが1つだけ存在する必要があります。

4

1 に答える 1

21

シンボリック(ソフト)リンクは必要ありません。シンボリックリンクは、(キャッシュ内の)元のファイルの削除を妨げるものではありません。元のファイルが削除されている場合、シンボリックリンクを介してファイルを開こうとするとエラーが発生します。

ハードリンクが必要です。-[NSFileManager linkItemAtURL:toURL:error:]またはを使用してハードリンクを作成できます-[NSFileManager linkItemAtPath:toPath:error:]NSFileManagerクラスリファレンスを見てください。

ハードリンクとシンボリックリンクについて詳しく知る必要がある場合は、お気に入りの検索エンジンで「ハードリンク」または「シンボリックリンク」を検索することで、多くの情報をすばやく見つけることができます。

将来の研究者への注意

-[NSFileManager createSymbolicLinkAtURL:withDestinationURL:error:]またはを使用してシンボリックリンクを作成できます-[NSFileManager createSymbolicLinkAtPath:withDestinationPath:error:]

于 2012-09-18T02:56:39.353 に答える