using System; using System.Collections.Generic; using UnityEditor; using Codice.Client.Common.Threading; using PlasticGui; using PlasticGui.WorkspaceWindow.Items; namespace Unity.PlasticSCM.Editor.Views { internal static class FileSystemOperation { internal static string GetExePath() { string title = PlasticLocalization.GetString( PlasticLocalization.Name.BrowseForExecutableFile); string directory = Environment.GetFolderPath( Environment.SpecialFolder.ProgramFiles); string path = EditorUtility.OpenFilePanel(title, directory, null); if (path.Length != 0) return path; return null; } internal static void Open(List files) { try { foreach (string file in files) OpenFile(file); } catch (Exception ex) { ExceptionsHandler.DisplayException(ex); } } internal static void OpenInExplorer(string path) { EditorUtility.RevealInFinder(path); } static void OpenFile(string path) { if (path == null) return; string relativePath = GetRelativePath.ToApplication(path); bool result = AssetDatabase.OpenAsset( AssetDatabase.LoadMainAssetAtPath(relativePath)); if (result) return; OpenOperation.OpenFile(path); } } }