SaveFileDialog kontrolü, bir dialog ekranı ile dosya kaydetmek için kullanılmaktadır. Tabiki kayıt işlemi için ayrıca kod yazılmaktadır. SaveFileDialog bize sadece kayıt ekranı için dizinleri listeleyebilme konusunda yardımcı olacaktır.
OpenFileDialog konusunda, SaveFileDialog kontrolü ile ortak olan bazı özellikleri anlatmıştım. Filter, FilterIndex, InitialDirectory, RestoreDirectory, CheckFileExists, Title , Multiselect gibi özellikleri;
http://www.hikmetokumus.com/makale/30/csharp-ile-openfiledialog-kullanimi
Linkinden okuyabilirsiniz. Diğer konular için anlatıma geçelim. SaveFileDialog kontrolünün kullanım şekli aşağıdaki gibidir.
private void buttonDosyaKaydet_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.ShowDialog(); }
Bir dizine dosya kaydederken kontrol varsayılan olarak dizinde aynı dosya isminden başka bir tane dosyanın olup olmadığını kontrol eder. Eğer varsa bir mesaj ile üzerine yazmak isteyip istemediğinizi sorar. Eğer mesaj çıkarmadan aynı isimde yer alan dosyanın üzerine kayıt etmek isterseniz OverwritePrompt özelliğini false olarak setlemek gerekecektir.
private void buttonDosyaKaydet_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.OverwritePrompt = false; save.ShowDialog(); }
Dosya adına dizinde var olmayan bir dosyanın adı yazıldığında kontrol dosyayı otomatik oluşturur. Eğer bunu kullanıcıdan gelecek yanıta göre yapmak istersek CreatePrompt özelliğini true olarak setlemek gerekecektir. Bu şekilde kullanıcıya dosyayı oluşturmak isteyip istemediğini soracaktır.
private void buttonDosyaKaydet_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.OverwritePrompt = true; save.CreatePrompt = true; save.ShowDialog(); }
Son olarak bir textbox içerisine girilen metni .txt dosyasına kayıt edecek bir örnek kod yazalım.
private void buttonDosyaKaydet_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.Filter = "Metin Dosyası|*.txt"; save.OverwritePrompt = true; save.CreatePrompt = true; if (save.ShowDialog() == DialogResult.OK) { StreamWriter Kayit = new StreamWriter(save.FileName); Kayit.WriteLine(textBox1.Text); Kayit.Close(); } }
Başarılar dilerim.