using
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Windows;
System.Windows.Controls;
System.Windows.Data;
System.Windows.Documents;
System.Windows.Input;
System.Windows.Media;
System.Windows.Media.Imaging;
System.Windows.Shapes;
// Namespaces para trabalhar com arquivos
using Microsoft.Win32;
using System.IO;
namespace Aula1
{
public partial class Arquivo : Window
{
private Boolean flagEdit = false;
// esta variável será
utilizada para verificar se o texto foi ou não modificado.
private OpenFileDialog DialogoAbrir = null;
// Caixa de Diálogo abrir
arquivo.
private SaveFileDialog DialogoSalvar = null; // Caixa de Dialogo salvar
arquivo.
public Arquivo()
{
InitializeComponent();
// Cria o objeto Caixa de Diálogo Abrir Arquivo
DialogoAbrir = new OpenFileDialog();
DialogoAbrir.FileOk += AbrirArquivoOk;
// Define o método que
será executado quando digitado OK na caixa de diálogo
// Cria o objeto Caixa de Diálogo Salvar Arquivo
DialogoSalvar = new SaveFileDialog();
DialogoSalvar.FileOk += SalvarArquivoOK; // Define o método que será
executado quando digitado OK na caixa de diálogo
}
#region MÉTODOS PARA ABRIR UM ARQUIVO
///
///
///
///
///
<summary>
Exibe a caixa de diálogo para abrir arquivo.
</summary>
<param name="sender">descreve o argumento sender</param>
<param name="e">argumentos recebidos</param>
private void Abrir_Click(object sender, RoutedEventArgs e)
{
if (flagEdit)
{
flagTest();
}
DialogoAbrir.ShowDialog();
}
/// <summary>
/// Abre o arquivo e exibe seu conteúdo.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AbrirArquivoOk(object sender,
System.ComponentModel.CancelEventArgs e)
{
TextReader reader = null;
try
{
//throw new System.ArgumentException("Parameter cannot be null",
"original");
string caminho = DialogoAbrir.FileName.ToString();
FileInfo src = new FileInfo(caminho);
NomeArquivo.Text = src.Name;
Conteudo.Text = "";
reader = src.OpenText();
string line = reader.ReadLine();
while (line != null)
{
Conteudo.Text += line + '\n';
line = reader.ReadLine();
}
}
catch (Exception ex)
{
//AppManager.LogExceptionXml xx = new
AppManager.LogExceptionXml();
//xx.SaveException(ex);
//AppManager.AppExceptionsTxt appEx = new
AppManager.AppExceptionsTxt();
//appEx.SaveException(ex);
MessageBox.Show("Erro: " + ex.Message);
}
finally
{
if (reader != null)
reader.Close();
}
}
#endregion
#region MÉTODOS PARA SALVAR UM ARQUIVO
/// <summary>
/// Método executado quando é pressionado o botão salvar.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Salvar_Click(object sender, RoutedEventArgs e)
{
Save();
// executa o método salvar.
}
/// <summary>
/// Método para Salvar o arquivo.
/// </summary>
private void Save()
{
if (DialogoAbrir.FileName != "")
{
if (File.Exists(DialogoAbrir.FileName))
{
MessageBoxResult res = MessageBox.Show("O arquivo já existe,
deseja regravar?", "Regravar SaLvar", MessageBoxButton.OKCancel);
if (res == MessageBoxResult.OK)
{
grava(DialogoAbrir.FileName);
}
}
}
else
{
// Exibe a caixa de dialogo salvar.
DialogoSalvar.ShowDialog();
}
}
private void grava(string caminho)
{
File.WriteAllText(caminho, Conteudo.Text, Encoding.UTF8);
Conteudo.Text = "";
}
/// <summary>
/// Método executado quando pressionado o botão salvar como.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SalvarComo_Click(object sender, RoutedEventArgs e)
{
// exibe a caixa de dialogo salvar.
DialogoSalvar.ShowDialog();
}
/// <summary>
/// Método executado quando pressionado o botão Salvar na caixa de
dialogo salvar.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SalvarArquivoOK(object sender,
System.ComponentModel.CancelEventArgs e)
{
grava(DialogoSalvar.FileName);
}
/// <summary>
/// Método executado quando o texto no controle Conteudo é modificado.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Conteudo_TextChanged(object sender, TextChangedEventArgs e)
{
if (!string.IsNullOrEmpty(Conteudo.Text))
{
// ativa o flag de edição e os botões para salvar
flagEdit = true;
Salvar.IsEnabled = true;
SalvarComo.IsEnabled = true;
}
else
{
// desativa o flag de edição e os botões para salvar
flagEdit = false;
Salvar.IsEnabled = false;
SalvarComo.IsEnabled = false;
}
}
///
///
///
///
///
<summary>
Executado quando pressionado o botão fechar.
</summary>
<param name="sender"></param>
<param name="e"></param>
private void Fechar_Click(object sender, RoutedEventArgs e)
{
flagTest();
}
/// <summary>
/// Método executado quando pressionado o botão fechar do form.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Window_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
flagTest();
}
/// <summary>
/// Verifica se o texto foi modificado. se foi exibe a opção para salvar.
/// </summary>
/// <returns></returns>
private Boolean flagTest()
{
if (flagEdit)
{
MessageBoxResult res = MessageBox.Show("Deseja Salvar o texto?",
"SaLvar", MessageBoxButton.YesNoCancel);
if (res == MessageBoxResult.Yes)
{
// Salva o arquivo
Save();
return true;
}
else if (res == MessageBoxResult.No)
{
return false;
}
}
return false;
}
#endregion
}
}
Download

using System.Windows