public static void StartLoadRuntimeManifest() { _RuntimeRawManifest = null; _RuntimeManifest = null; _RuntimeManifestReady.Reset(); _RuntimeManifestTaskIdle.Reset(); PlatDependant.RunBackground(LoadRuntimeManifest); }
public static TaskProgress MakeZipBackground(string zipFile, string srcDir, IList <string> entries, System.Threading.EventWaitHandle waithandle) { return(PlatDependant.RunBackground(progress => { try { if (string.IsNullOrEmpty(zipFile) || entries == null || entries.Count == 0 || !System.IO.Directory.Exists(srcDir)) { return; } progress.Total = entries.Count; using (var stream = PlatDependant.OpenWrite(zipFile)) { using (var zip = new ZipArchive(stream, ZipArchiveMode.Create)) { if (!srcDir.EndsWith("/") && !srcDir.EndsWith("\\")) { srcDir += "/"; } for (int i = 0; i < entries.Count; ++i) { progress.Length = i; var entry = entries[i]; if (string.IsNullOrEmpty(entry)) { continue; } var src = srcDir + entry; if (PlatDependant.IsFileExist(src)) { try { using (var srcstream = PlatDependant.OpenRead(src)) { var zentry = zip.CreateEntry(entry.Replace('\\', '/')); using (var dststream = zentry.Open()) { srcstream.CopyTo(dststream); } } } catch (Exception e) { PlatDependant.LogError("zip entry FAIL! " + entry); PlatDependant.LogError(e); } } } } } } catch (Exception e) { PlatDependant.LogError("Build zip FAIL! " + zipFile); PlatDependant.LogError(e); } finally { if (waithandle != null) { waithandle.Set(); } } })); }