アドフリくんのキャッシュ

  • 投稿日:
  • by
  • カテゴリ:
リワード動画を実装したら、
アプリ起動するだけで/Library/Cachesにデータがダウンロードされ
アプリ終了後も残り続ける模様。

ストレージが逼迫したらOSが勝手に削除するディレクトリではあるものの、
iOSの「ストレージを管理」で見たときに「書類とデータ」にカウントされ、
無駄に容量を食うアプリという印象を与えてしまう。

起動時や終了時にApplication.temporaryCachePath内をクリアするのが良さそう。


public static void DeleteCaches()
    {
        string path = Application.temporaryCachePath;
        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(path);
        foreach (System.IO.FileInfo file in di.GetFiles())
        {
            if (file.IsReadOnly == false) {
                try
                {
                    file.Delete ();
                }
                catch (IOException)
                {
                }
            }
        }
        foreach (System.IO.DirectoryInfo dir in di.GetDirectories())
        {
            //iOSが生成するSnapshotsは消せない模様
            if (dir.Name != "Snapshots") {
                try
                {
                    dir.Delete(true);
                }
                catch (IOException)
                {
                }
            }
        }
    }

追記:
AndroidだとApplication.persistentDataPath内にも色々溜め込んでいる。