protected void SaveTextFile(ref string FileName, string title, Entry entry, ManagedArray data) { TextSaver.Title = title; TextSaver.SelectFilename(FileName); string directory; // Add most recent directory if (!string.IsNullOrEmpty(TextSaver.Filename)) { directory = System.IO.Path.GetDirectoryName(TextSaver.Filename); if (Directory.Exists(directory)) { TextSaver.SetCurrentFolder(directory); } } if (TextSaver.Run() == (int)ResponseType.Accept) { if (!string.IsNullOrEmpty(TextSaver.Filename)) { FileName = TextSaver.Filename; directory = GetDirectory(FileName); var ext = TextSaver.Filter.Name; FileName = String.Format("{0}.{1}", GetBaseFileName(FileName), ext); if (data != null) { var current = DelimiterBox.Active; var delimiter = current >= 0 && current < Delimiters.Count ? Delimiters[current].Character : '\t'; var fullpath = String.Format("{0}/{1}", directory, FileName); try { ManagedFile.Save2D(fullpath, data, delimiter); FileName = fullpath; entry.Text = FileName; } catch (Exception ex) { Console.WriteLine("Error saving {0}: {1}", FileName, ex.Message); } } } } TextSaver.Hide(); }