/// <summary> /// Проверяет текущий файл на соответствие настройкам /// </summary> /// <param name="file">Файл</param> /// <param name="extension">Расширение файла</param> public static bool CheckFileWithSettings(string file, string extension) { if (extension != ".xml" && GlobalVariables.AppSettings.OnlyXml) { return(false); } if (extension == ".xml") { if (!GlobalVariables.AppSettings.EmptyXml) { try { var details = XmlFile.Create(file).Details; return(details != null && details.Count != 0); } catch (XmlParserException) { return(false); } } } else if (extension == ".smali") { if (!GlobalVariables.AppSettings.EmptySmali && !SmaliFile.HasLines(file)) { return(false); } } else if (GlobalVariables.AppSettings.ImageExtensions.Contains(extension)) { if (!GlobalVariables.AppSettings.Images) { return(false); } } else if (GlobalVariables.AppSettings.OtherExtensions.Contains(extension)) { if (!GlobalVariables.AppSettings.OtherFiles) { return(false); } } return(true); }
/// <summary> /// Возвращает изменяемый файл, соответствующий файлу на диске, или null, если подходящий файл не найден /// </summary> /// <param name="filePath">Путь к файлу на диске</param> public static IEditableFile GetSuitableEditableFile(string filePath) { switch (Path.GetExtension(filePath)) { case ".xml": if (IsDictionaryFile(filePath)) { return(new DictionaryFile(filePath)); } return(XmlFile.Create(filePath)); case ".smali": return(new SmaliFile(filePath)); } return(null); }
/// <summary> /// Загружает файл в редактор /// </summary> /// <param name="pathToFile">Файл</param> public static void LoadFile(string pathToFile) { var ext = Path.GetExtension(pathToFile); if (!GlobalVariables.EditableFileExtenstions.Contains(ext)) { Process.Start(pathToFile); return; } IEditableFile file; try { switch (ext) { case ".xml": file = XmlFile.Create(pathToFile); break; default: //".smali": file = new SmaliFile(pathToFile); break; } } catch (IOException ex) { // todo: add to string resources MessBox.ShowDial($"Не удалось загрузить файл из-за ошибки системы.\nСообщение: {ex.Message}", StringResources.ErrorLower); return; } WindowManager.ActivateWindow<EditorWindow>(); ManualEventManager.GetEvent<AddEditableFilesEvent>() .Publish(new AddEditableFilesEvent(file)); ManualEventManager.GetEvent<EditorScrollToFileAndSelectEvent>() .Publish(new EditorScrollToFileAndSelectEvent(f => f.FileName.Equals(file.FileName, StringComparison.Ordinal))); }