コード例 #1
0
ファイル: ES2FileStream.cs プロジェクト: Finn1510/Fortech
 private Stream CreateStorageStream()
 {
     if (!ES2DirectoryUtility.Exists(settings.filenameData.directoryPath))
     {
         ES2DirectoryUtility.CreateDirectory(settings.filenameData.directoryPath);
     }
     return(ES2FileUtility.CreateFileStream(settings.filenameData.filePath, settings.fileMode, settings.bufferSize));
 }
コード例 #2
0
ファイル: ES2FileStream.cs プロジェクト: Finn1510/Fortech
 private Stream CreateReadStream()
 {
     if (settings.optimizeMode == ES2Settings.OptimizeMode.Fast)
     {
         return(new MemoryStream(ES2FileUtility.ReadAllBytes(settings.filenameData.filePath)));
     }
     else
     {
         return(ES2FileUtility.CreateFileStream(settings.filenameData.filePath, ES2Settings.ES2FileMode.Open, settings.bufferSize));
     }
 }
コード例 #3
0
ファイル: ES2FileStream.cs プロジェクト: Finn1510/Fortech
    private Stream CreateWriteStream()
    {
        if (settings.optimizeMode == ES2Settings.OptimizeMode.Fast)
        {
            return(new MemoryStream());
        }
        else
        {
            if (!ES2DirectoryUtility.Exists(settings.filenameData.directoryPath))
            {
                ES2DirectoryUtility.CreateDirectory(settings.filenameData.directoryPath);
            }

            return(ES2FileUtility.CreateFileStream(settings.filenameData.filePath + "tmp", ES2Settings.ES2FileMode.Create, settings.bufferSize));
        }
    }
コード例 #4
0
ファイル: ES2FileStream.cs プロジェクト: Finn1510/Fortech
 public override void Store()
 {
     using (Stream storageStream = CreateStorageStream())
     {
         if (settings.optimizeMode == ES2Settings.OptimizeMode.Fast)
         {
             WriteToStreamFast(storageStream);
         }
         else if (settings.optimizeMode == ES2Settings.OptimizeMode.LowMemory)
         {
             WriteToStreamLowMemory(storageStream);
         }
     }
     stream.Dispose();
     ES2FileUtility.Delete(settings.filenameData.filePath + "tmp");
 }
コード例 #5
0
 public static void DeleteFile(ES2Settings settings)
 {
     if (settings.filenameData.IsFile())
     {
         if (ES2FileUtility.Exists(settings.filenameData.filePath))
         {
             ES2FileUtility.Delete(settings.filenameData.filePath);
         }
     }
     else if (settings.filenameData.IsFolder())
     {
         if (ES2DirectoryUtility.Exists(settings.filenameData.filePath))
         {
             ES2DirectoryUtility.Delete(settings.filenameData.filePath, true);
         }
     }
 }
コード例 #6
0
 public static void MoveFile(ES2Settings settings, ES2Settings newSettings)
 {
     if (settings.filenameData.IsFile())
     {
         if (ES2FileUtility.Exists(settings.filenameData.filePath))
         {
             if (!ES2DirectoryUtility.Exists(newSettings.filenameData.directoryPath))
             {
                 ES2DirectoryUtility.CreateDirectory(newSettings.filenameData.directoryPath);
             }
             ES2FileUtility.Move(settings.filenameData.filePath, newSettings.filenameData.filePath);
         }
     }
     else if (settings.filenameData.IsFolder() && ES2DirectoryUtility.Exists(settings.filenameData.filePath))
     {
         if (ES2DirectoryUtility.Exists(settings.filenameData.filePath))
         {
             ES2DirectoryUtility.Move(settings.filenameData.directoryPath, newSettings.filenameData.directoryPath);
         }
     }
 }
コード例 #7
0
    public static bool Exists(ES2Settings settings)
    {
        // Resources
        if (settings.saveLocation == ES2Settings.SaveLocation.Resources)
        {
            if (settings.filenameData.extension != ".bytes")
            {
                Debug.LogError("Easy Save 2 Error: Can only check existence of files from Resources with the extension '.bytes'.");
            }

            TextAsset data = Resources.Load(settings.filenameData.resourcesPath) as TextAsset;

            if (settings.filenameData.HasTag())
            {
                return(CheckForTagInBytes(settings.filenameData.tag, data.bytes));
            }
            else if (data != null)
            {
                return(true);
            }
            return(false);
        }
        else if (settings.saveLocation == ES2Settings.SaveLocation.PlayerPrefs)
        {
            if (!settings.filenameData.HasTag())
            {
                return(PlayerPrefs.HasKey(settings.filenameData.playerPrefsPath));
            }

            if (!PlayerPrefs.HasKey(settings.filenameData.playerPrefsPath))
            {
                return(false);
            }

            using (ES2Reader reader = ES2Reader.Create(settings))
            {
                bool exists = reader.TagExists();
                return(exists);
            }
        }
        else if (settings.filenameData.IsURL())
        {
            return(false);
        }

        else if (settings.filenameData.HasTag())
        {
            if (!ES2FileUtility.Exists(settings.filenameData.filePath))
            {
                return(false);
            }

            using (ES2Reader reader = ES2Reader.Create(settings))
            {
                bool exists = reader.TagExists();
                return(exists);
            }
        }
        else
        {
            if (settings.filenameData.IsFolder())
            {
                return(ES2DirectoryUtility.Exists(settings.filenameData.directoryPath));
            }
            return(ES2FileUtility.Exists(settings.filenameData.filePath));
        }
    }
コード例 #8
0
ファイル: ES2FileStream.cs プロジェクト: Finn1510/Fortech
 public override bool MayRequireOverwrite()
 {
     return(ES2FileUtility.Exists(settings.filenameData.filePath));
 }