简单的文本编辑器 - 需要另存为二进制格式


namespace SimpleTextEditor
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void btnOpenFile_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.DefaultExt = ".txt";
            dlg.Filter = "Text documents (.txt) | *.txt";
            Nullable<bool> result = dlg.ShowDialog();
            if (result==true)
            {
                string filename = dlg.FileName;
                tbEditor.Text = System.IO.File.ReadAllText(filename);
            }
        }
        private void btnSaveFile_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.DefaultExt = ".txt";
            dlg.Filter = "Text documents (.txt)|*.txt|Binary Files (.bin)|*.bin";
            Nullable<bool> result = dlg.ShowDialog();
            if (result == true)
            {
                string filename = dlg.FileName;
                System.IO.File.WriteAllText(filename, tbEditor.Text);   
            }
        }
    }
}

首先为二进制扩展创建一些占位符:

const string BINARY_EXTENSION = "bin";

btnSaveFile_Click()中,您可以使用以下命令修改保存功能:

if ( filename.EndsWith(BINARY_EXTENSION))
    File.WriteAllBytes(filename, Encoding.UTF8.GetBytes(tbEditor.Text)); // Or choose something different then UTF8
else
    File.WriteAllText(filename);

在您的btnOpenFile_Click中,您可以做同样的事情:

if ( filename.EndsWith(BINARY_EXTENSION))
    tbEditor.Text = Encoding.UTF8.GetString(File.ReadAllBytes(filename); // Or choose something different then UTF8
else
    tbEditor.Text = File.ReadAllText(filename);

相关内容

  • 没有找到相关文章

最新更新