using System.IO; namespace Editor; public static partial class EditorUtility { /// /// Open a file save dialog. Returns null on cancel, else the absolute path of the target file. /// public static string SaveFileDialog( string title, string extension, string defaultPath ) { extension = extension.Trim( '.' ); var path = defaultPath; if ( path.Contains( "." ) ) path = Path.GetDirectoryName( path ); var fd = new FileDialog( null ); fd.Title = title; fd.Directory = path; fd.DefaultSuffix = $".{extension}"; fd.SelectFile( Path.GetFileName( defaultPath ) ); fd.SetFindFile(); fd.SetModeSave(); fd.SetNameFilter( $"{extension} (*.{extension})" ); if ( !fd.Execute() ) return null; return fd.SelectedFile; } /// /// Open a file open dialog. Returns null on cancel, else the absolute path of the target file. /// public static string OpenFileDialog( string title, string extension, string defaultPath ) { extension = extension.Trim( '.' ); var fd = new FileDialog( null ); fd.Title = title; fd.Directory = Path.GetDirectoryName( defaultPath ); fd.DefaultSuffix = $".{extension}"; fd.SelectFile( Path.GetFileName( defaultPath ) ); fd.SetFindFile(); fd.SetModeOpen(); fd.SetNameFilter( $"{extension} (*.{extension})" ); if ( !fd.Execute() ) return null; return fd.SelectedFile; } }