コード例 #1
0
ファイル: FileUtils.cs プロジェクト: cosmiczilch/hungrynerds
        public static IEnumerator CopyFile(TimiSharedURI sourceFileURI, TimiSharedURI destinationDirectoryURI)
        {
            if (destinationDirectoryURI.BasePathType == FileBasePathType.LocalDataPath ||
                destinationDirectoryURI.BasePathType == FileBasePathType.LocalPersistentDataPath ||
                (destinationDirectoryURI.BasePathType == FileBasePathType.LocalStreamingAssetsPath && Application.isEditor))
            {
                FileLoadRequest fileLoadRequest = FileLoader.GetFileStreamAsync(sourceFileURI, FileMode.Open, FileAccess.Read);
                if (fileLoadRequest != null)
                {
                    fileLoadRequest.StartRequest();
                    yield return(fileLoadRequest);

                    string contents = FileUtils.GetStreamContents(fileLoadRequest.LoadedFileStream);

                    TimiSharedURI destinationFileURI = new TimiSharedURI(destinationDirectoryURI.BasePathType,
                                                                         Path.Combine(destinationDirectoryURI.RelativePath, sourceFileURI.FileName));
                    using (Stream destinationFileStream = FileLoader.GetFileStreamSync(destinationFileURI, FileMode.Create, FileAccess.Write)) {
                        if (destinationFileStream != null)
                        {
                            FileUtils.PutStreamContents(destinationFileStream, contents);
                        }
                        destinationFileStream.Close();
                    }
                }

                yield break;
            }
            else
            {
                string errorMessage = "Not supported to write on base path type: " + destinationDirectoryURI.BasePathType;
                DebugLog.LogErrorColor(errorMessage, LogColor.grey);
                throw new NotImplementedException(errorMessage);
            }
        }
コード例 #2
0
 private static VersionManifestEntry manifestEntry(this FileLoadRequest request)
 {
     return((VersionManifestEntry)f_manifestEntry.GetValue(request));
 }
コード例 #3
0
 private static DataManager dataManager(this FileLoadRequest request)
 {
     return((DataManager)f_dataManager.GetValue(request));
 }
コード例 #4
0
 private static void State(this FileLoadRequest request, DataManager.FileLoadRequest.RequestState state)
 {
     m_StateSet.Invoke(request, new object[] { state });
 }