public string GetDataPathOrDefault(string key, string defaultValue) { if (key != null && _contentDataPaths.ContainsKey(key.ToLower())) { if (_contentDataPaths[key.ToLower()].AbsolutePath != null) { return(_contentDataPaths[key.ToLower()].AbsolutePath); } if (_contentDataPaths[key.ToLower()].ZipFilePath != null) { var tempContentFile = TempfileUtil.NewFilename(Path.GetExtension(defaultValue)); try { ZipTools.ExtractZipFileToFile(_contentDataPaths[key.ToLower()].ZipFilePath, null, _contentDataPaths[key.ToLower()].ReferencePath, tempContentFile); return(tempContentFile); } catch (Exception ex) { // ignore errors, keep on trucking just like SE. // write event log warning of any files not loaded. DiagnosticsLogging.LogWarning(string.Format(Res.ExceptionState_CorruptModFile, _contentDataPaths[key.ToLower()].ZipFilePath), ex); return(defaultValue); } } } return(defaultValue); }