public static SavedOptions Load(string path) { SavedOptions result = null; XmlSerializer x = new XmlSerializer(typeof(SavedOptions)); try { using (FileStream fs = new FileStream(path, FileMode.Open)) { if (fs.Length == 0) { // nothing inside return(null); } XmlReader reader = new XmlTextReader(fs); result = (SavedOptions)x.Deserialize(reader); fs.Close(); } } catch (Exception e) { Debug.LogFormat("Build Report Tool: Error found upon loading options XML file in {0}\nWill create a new options file instead.\n\nError: {1}", path, e); return(new SavedOptions()); } //Debug.LogFormat("Build Report Tool: Loaded options from: {0}", path); return(result); }
public static void Save(string savePath, SavedOptions optionsToSave) { optionsToSave.OnBeforeSave(); XmlSerializer x = new XmlSerializer(typeof(SavedOptions)); TextWriter writer = new StreamWriter(savePath); x.Serialize(writer, optionsToSave); writer.Close(); //Debug.LogFormat("Build Report Tool: Saved options to: {0}", savePath); }
static void SaveOptions() { if (string.IsNullOrEmpty(_foundPathForSavedOptions)) { return; } if (_savedOptions == null || !File.Exists(_foundPathForSavedOptions)) { _foundPathForSavedOptions = string.Empty; return; } SavedOptions.Save(_foundPathForSavedOptions, _savedOptions); }
public static SavedOptions Load(string path) { SavedOptions result = null; XmlSerializer x = new XmlSerializer(typeof(SavedOptions)); using (FileStream fs = new FileStream(path, FileMode.Open)) { if (fs.Length == 0) { // nothing inside return(null); } XmlReader reader = new XmlTextReader(fs); result = (SavedOptions)x.Deserialize(reader); fs.Close(); } //Debug.LogFormat("Build Report Tool: Loaded options from: {0}", path); return(result); }
static void InitializeOptionsIfNeeded() { if (_savedOptions == null) { _foundPathForSavedOptions = string.Empty; } if (string.IsNullOrEmpty(_foundPathForSavedOptions)) { // look for the file in this order: // 1. inside the BuildReport folder // 2. at the very topmost Assets folder // 3. outside the Assets folder // 4. in the ProjectSettings folder // 5. in the User's My Documents folder // --------------------------------------------------- // look in /Assets/BuildReport/ var optionsInBuildReportFolder = DefaultOptionsPath; if (File.Exists(optionsInBuildReportFolder)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsInBuildReportFolder); _foundPathForSavedOptions = optionsInBuildReportFolder; return; } // --------------------------------------------------- // look in /Assets/Plugins/BuildReport/ var optionsInPluginsBuildReport = string.Format("{0}/Plugins/BuildReport/{1}", Application.dataPath, SAVED_OPTIONS_FILENAME); if (File.Exists(optionsInPluginsBuildReport)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsInPluginsBuildReport); _foundPathForSavedOptions = optionsInPluginsBuildReport; return; } // --------------------------------------------------- // search for "BuildReport" folder and look in there if (!IsBuildReportInRegularPaths) { string customBuildReportFolder = BuildReportTool.Util.FindAssetFolder(Application.dataPath, BUILD_REPORT_TOOL_DEFAULT_FOLDER_NAME); if (!string.IsNullOrEmpty(customBuildReportFolder)) { var optionsInCustomBuildReportFolder = string.Format("{0}/{1}", customBuildReportFolder, SAVED_OPTIONS_FILENAME); if (File.Exists(optionsInCustomBuildReportFolder)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsInCustomBuildReportFolder); _foundPathForSavedOptions = optionsInCustomBuildReportFolder; return; } } } // --------------------------------------------------- // look in /Assets/ var optionsInTopmostAssets = string.Format("{0}/{1}", Application.dataPath, SAVED_OPTIONS_FILENAME); if (File.Exists(optionsInTopmostAssets)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsInTopmostAssets); _foundPathForSavedOptions = optionsInTopmostAssets; return; } // --------------------------------------------------- // look in Unity project folder (where Assets, Library, and ProjectSettings folder are) var outsideAssets = BuildReportTool.Util.GetProjectPath(Application.dataPath); var optionsOutsideAssets = string.Format("{0}{1}", outsideAssets, SAVED_OPTIONS_FILENAME); if (File.Exists(optionsOutsideAssets)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsOutsideAssets); _foundPathForSavedOptions = optionsOutsideAssets; return; } // --------------------------------------------------- // look inside ProjectSettings folder var optionsInProjectSettings = string.Format("{0}ProjectSettings/{1}", outsideAssets, SAVED_OPTIONS_FILENAME); //Debug.LogFormat("Looking in {0}", optionsInProjectSettings); if (File.Exists(optionsInProjectSettings)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsInProjectSettings); _foundPathForSavedOptions = optionsInProjectSettings; return; } // --------------------------------------------------- // look in /My Documents/UnityBuildReports/ var optionsInMyDocs = string.Format("{0}/{1}/{2}", BuildReportTool.Util.GetUserHomeFolder(), BUILD_REPORTS_DEFAULT_FOLDER_NAME, SAVED_OPTIONS_FILENAME); //Debug.LogFormat("Looking in {0}", optionsInMyDocs); if (File.Exists(optionsInMyDocs)) { _savedOptions = BuildReportTool.SavedOptions.Load(optionsInMyDocs); _foundPathForSavedOptions = optionsInMyDocs; return; } // --------------------------------------------------- } // if the options file failed to load // one last try // if (_savedOptions == null) { if (!string.IsNullOrEmpty(_foundPathForSavedOptions) && File.Exists(_foundPathForSavedOptions)) { // there's a valid options file already // just load that one _savedOptions = BuildReportTool.SavedOptions.Load(_foundPathForSavedOptions); } } // could not load the file, or there isn't one yet (at least, not in any recognized valid paths). // so create a new one at the default path if (_savedOptions == null) { _savedOptions = new BuildReportTool.SavedOptions(); _foundPathForSavedOptions = DefaultOptionsPath; var defaultFolder = Path.GetDirectoryName(_foundPathForSavedOptions); if (!string.IsNullOrEmpty(defaultFolder) && !Directory.Exists(defaultFolder)) { Directory.CreateDirectory(defaultFolder); } SavedOptions.Save(_foundPathForSavedOptions, _savedOptions); Debug.LogFormat("Build Report Tool: Created a new options file at: {0}", _foundPathForSavedOptions); } }