public static FileLoadRequest GetFileStreamAsync(TimiSharedURI fileURI, FileMode mode, FileAccess accessType) { if (!FileLoader.CheckParameters(fileURI, mode, accessType)) { return(null); } return(new FileLoadRequest(fileURI.GetFullPath(), mode, accessType)); }
public static TimiSharedURI Combine(TimiSharedURI uri1, TimiSharedURI uri2) { if (uri1.BasePathType != uri2.BasePathType) { DebugLog.LogErrorColor("Cannot combine " + uri1 + " with " + uri2, LogColor.grey); return(null); } TimiSharedURI result = new TimiSharedURI(uri1.BasePathType, Path.Combine(uri1.RelativePath, uri2.RelativePath)); return(result); }
/** * Currently supports loading files from persistent data path everywhere, and * from streaming assets and data path iff editor */ public static Stream GetFileStreamSync(TimiSharedURI fileURI, FileMode mode, FileAccess accessType) { if (!FileLoader.CheckParameters(fileURI, mode, accessType)) { return(null); } if (fileURI.BasePathType != FileBasePathType.LocalPersistentDataPath) { if (!Application.isEditor || (fileURI.BasePathType != FileBasePathType.LocalDataPath && fileURI.BasePathType != FileBasePathType.LocalStreamingAssetsPath)) { DebugLog.LogErrorColor("Synchronous loads disallowed on uri: " + fileURI.ToString(), LogColor.red); return(null); } } FileStream fileStream = new FileStream(fileURI.GetFullPath(), mode, accessType); return(fileStream); }
private static bool CheckParameters(TimiSharedURI fileURI, FileMode mode, FileAccess accessType) { if (accessType == FileAccess.Write || accessType == FileAccess.ReadWrite) { if (fileURI.BasePathType != FileBasePathType.LocalPersistentDataPath) { if (!Application.isEditor || (fileURI.BasePathType != FileBasePathType.LocalDataPath && fileURI.BasePathType != FileBasePathType.LocalStreamingAssetsPath)) { DebugLog.LogErrorColor("Writes disallowed on uri: " + fileURI.ToString(), LogColor.red); return(false); } } } if (string.IsNullOrEmpty(fileURI.GetFullPath())) { DebugLog.LogErrorColor("File path empty", LogColor.red); return(false); } return(true); }