C# SaveFileDialog
.NET Framework mette a disposizione il dialog SaveFileDialog per salvare i file.
Vediamo come implementarlo in C# in un WindowsForm.
Nel nostro form principale avremo una voce di menu alla quale sarà associata un'azione del genere:
private void saveItem_Click(object sender, EventArgs e)
{
try
{
DialogSalvaTxt ds = new DialogSalvaTxt();
ds.dialog("TESTO DA SALVARE");
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
}
DialogSalvaTxt è la classe preposta alla creazione del SaveFileDialog; viene anche richiamato un metodo che vuola una string come parametro.
Vediamo in cosa consiste la classe:
using System;
using System.Windows.Forms;
using System.IO;
class DialogSalvaTxt
{
public void dialog(string text)
{
SaveFileDialog sf = new SaveFileDialog();
sf.Title = "Salva";
sf.Filter = "TXT|*.txt|Tutti i file|*.*";
sf.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
sf.ShowDialog();
if (sf.FileName != "")
{
try
{
FileStream stream = (FileStream)sf.OpenFile();
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine(text);
writer.Flush();
writer.Close();
stream.Close();
}
catch (IOException ex)
{
throw new Exception(ex.Message);
}
}
}
}
Istanziamo un oggetto SaveFileDialog.
Sotto impostiamo alcune opzioni:
- il titolo della finestra
- i filtri => io ne ho messi solo due, ma se ne possono mettere quanti ve ne pare
- la directory iniziale => impostata sulla home directory
- mostriamo il dialog
Sotto controlliamo che il nome del file non sia vuoto, e in caso salviamo il file.
Prima usiamo un FileStream per creare un file vuoto; il SaveFileDialog ci avvertirà se stiamo sovrascrivendo un file.
Poi usiamo uno StreamWriter per scrivere il contenuto della string passata come parametro dentro al file.
Chiudiamo stream e writer.
Le classi di riferimento sono queste:
Se non ci risentiamo BUON ANNO!!!
c# c# savefiledialog filestream streamwrit
Commentami!