Пример #1
0
        //キャッシュファイル書き込み
        internal void WriteNewVersion(AssetFileUtage file)
        {
            if (AssetFileManager.DontUseCache)
            {
                return;
            }
            if (AssetFileManager.isOutPutDebugLog)
            {
                Debug.Log("WriteCacheFile:" + file.FileName + " ver:" + file.Version + " cache:" + file.CacheVersion);
            }

            //キャッシュファイル書き込み準備
            file.ReadyToWriteCache(IncCacheID(), CacheRootDir, AssetFileManager.isDebugCacheFileName);
            string cachePath = file.CachePath;

            //キャッシュ用のディレクトリがなければ作成
            FileIOManger.CreateDirectory(cachePath);

            //ファイル書き込み
            bool ret = false;

            if (file.EncodeType == AssetFileEncodeType.EncodeOnCache)
            {
                switch (file.FileType)
                {
                case AssetFileType.Sound:
                    ret = FileIOManger.WriteSound(cachePath, file.WriteCacheFileSound);
                    break;

                case AssetFileType.Texture:
                    ret = FileIOManger.WriteEncodeNoCompress(cachePath, file.CacheWriteBytes);
                    break;

                default:
                    ret = FileIOManger.WriteEncode(cachePath, file.CacheWriteBytes);
                    break;
                }
            }
            else
            {
                ret = FileIOManger.Write(cachePath, file.CacheWriteBytes);
            }

            WrapperUnityVersion.SetNoBackupFlag(cachePath);

            //キャッシュファイルテーブルを更新して上書き
            if (!ret)
            {
                if (AssetFileManager.isOutPutDebugLog)
                {
                    Debug.LogError("Write Failed :" + file.CachePath);
                }
            }
            else
            {
                WriteCacheTbl();
                file.DeleteOldCacheFile();
            }
        }
Пример #2
0
        //キャッシュファイルテーブルを読み込み
        void ReadCacheTbl()
        {
#if !(UNITY_WEBPLAYER || UNITY_WEBGL)
            fileInfoTbl = new AssetFileInfoDictionary();
            if (!FileIOManger.ReadBinaryDecode(GetCacheTblPath(), fileInfoTbl.Read))
            {
                fileInfoTbl.Clear();
            }
#endif
        }
Пример #3
0
        //キャッシュファイルテーブルを保存
        void WriteCacheTbl()
        {
#if !(UNITY_WEBPLAYER || UNITY_WEBGL)
            //キャッシュ用のディレクトリがなければ作成
            string path = GetCacheTblPath();
            FileIOManger.CreateDirectory(path);
            FileIOManger.WriteBinaryEncode(path, fileInfoTbl.Write);

            WrapperUnityVersion.SetNoBackupFlag(path);
#endif
        }
Пример #4
0
        //キャッシュファイルテーブルを保存
        void WriteCacheTbl()
        {
#if !UNITY_WEBPLAYER
            //キャッシュ用のディレクトリがなければ作成
            string path = GetCacheTblPath();
            FileIOManger.CreateDirectory(path);
            FileIOManger.WriteBinaryEncode(path, fileInfoTbl.Write);

#if UNITY_IPHONE
            iPhone.SetNoBackupFlag(path);
#endif
#endif
        }
Пример #5
0
        //キャッシュファイル書き込み
        void WriteNewVersion(AssetFileWork file)
        {
            //キャッシュファイル書き込み準備
            file.FileInfo.ReadyToWriteCache(fileInfoTbl.IncCacheID(), GetCacheRootDir(), isDebugCacheFileName);
            string cachePath = file.FileInfo.CachePath;

            //キャッシュ用のディレクトリがなければ作成
            FileIOManger.CreateDirectory(cachePath);

            //ファイル書き込み
            bool ret = false;

            if (file.FileInfo.IsCrypt)
            {
                switch (file.FileInfo.FileType)
                {
                case AssetFileType.Sound:
                    ret = FileIOManger.WriteSound(cachePath, file.WriteCacheFileSound);
                    break;

                case AssetFileType.Texture:
                    ret = FileIOManger.WriteEncodeNoCompress(cachePath, file.CacheWriteBytes);
                    break;

                default:
                    ret = FileIOManger.WriteEncode(cachePath, file.CacheWriteBytes);
                    break;
                }
            }
            else
            {
                ret = FileIOManger.Write(cachePath, file.CacheWriteBytes);
            }

#if UNITY_IPHONE
            iPhone.SetNoBackupFlag(cachePath);
#endif

            //キャッシュファイルテーブルを更新して上書き
            if (!ret)
            {
                DebugLogError("Write Failed :" + file.FileInfo.CachePath);
            }
            else
            {
                WriteCacheTbl();
                file.FileInfo.DeleteOldCacheFile();
            }
        }
Пример #6
0
        //符号化して書き込み
        public bool WriteEncode(string path, string srcFileName, byte[] bytes)
        {
            AssetFileType fileType = PraseFileType(srcFileName);

            bool ret;

            switch (fileType)
            {
            case AssetFileType.Texture:
                ret = FileIOManger.WriteEncodeNoCompress(path, bytes);
                break;

            default:
                ret = FileIOManger.WriteEncode(path, bytes);
                break;
            }
            return(ret);
        }
Пример #7
0
        //起動時初期化
        internal void BootInit(AssetFileManagerSettings settings, ConvertFileListManager convertFileListManager)
        {
#if !(UNITY_WEBPLAYER || UNITY_WEBGL)
            this.Clear();
            if (!AssetFileManager.DontUseCache)
            {
                if (!FileIOManger.ReadBinaryDecode(CacheTblPath, (reader) => Read(reader, settings, convertFileListManager)))
                {
                    this.Clear();
                }
            }
#endif
            if (AssetFileManager.isDebugBootDeleteChacheAll)
            {
                DeleteCacheFileAllSub();
            }
            else if (AssetFileManager.isDebugBootDeleteChacheTextAndBinary)
            {
                DeleteCacheFileAllSub(AssetFileType.Text);
                DeleteCacheFileAllSub(AssetFileType.Bytes);
                DeleteCacheFileAllSub(AssetFileType.Csv);
            }
        }