Kontrola SaveFileDialog - naknadno postavljeno objašnjenje nekih od opcija
Kontrola SaveFileDialog se koristi za opciju
sačuvavanja fajla. Najčešće
će SaveFileDialog da izgleda kao na
sledećoj slici gde se lepo vidi mogućnost korišćenja opcija iz
Windows Explorer-a, što uključuje
navigaciju među folderima i čuvanje fajla u folderu.

Kreiranje SaveFileDialog-a
Postoje dva načina kreiranja SaveFileDialog-a:
prilikom dizajna forme, ili
korišćenjem klase SaveFileDialog u programskom kodu, dinamički ( run-time )
Za razliku od nekih drugih Windows Forms kontrola, SaveFileDialog niti ima niti mu trebaju visual properties.
Napomena:
Iako
imate opciju za kreiranje SaveFileDialog
u design-time, neima je
lakše da se kreira
dinamički u programskom kodu (run-time).
Design-time
Da bi se kreirao dijalog SaveFileDialog u toku dizajna forme, samo treba prevući kontrolu iz Toolbox-a na Formu. Nakon toga, ispod ćete videti nešto ovako:

U pozadini, dodavanjem dijaloga SaveFileDialog na Formu dodaju se sledeće dve linije koda:
private System.Windows.Forms.SaveFileDialog saveFileDialog1;
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
Run-time
Dinamički, u programskom kodu, ako se želi kreirati kontrola SaveFileDialog, ono što treba uraditi je kreirati instancu klase SaveFileDialog, postaviti željene Propertije i dodati klasu SaveFileDialog u kontrole na Formi.
1. korak je da se kreira instanca klase SaveFileDialog:
- SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
Metoda ShowDialog se koristi za prikazivanje dijaloga SaveFileDialog:
SaveFileDialog1.ShowDialog();
Onog momenta kada se pozove metoda ShowDialog, moguće je pretraživanje među fajlovima (browse) i selektovanje fajla.
Podešavanje SaveFileDialog Propertija
Najlakši način je vizuelno – korišćenjem Properties Window (ako ga ne vidite sa strane, uvek možete proveriti sa View-Properties Window ili F4 ili desni klik na kontrolu i opcija Properties).
Evo kako to izgleda:

Initial i Restore Directories
InitialDirectory property – direktorijum koji će da se prikaže kada se prvi put otvori dijalog. Na primer, ako želimo da to bude C:
SaveFileDialog1.InitialDirectory = @"C:\";
(oznaka @ se koristi da ne bismo ispred svakog specijalnog znaka u stringu stavljali \ )
OPCIONO: Ako se postavi na true properti RestoreDirectory, to znači da će se prilikom zatvaranja dijaloga u podešavanjima vratiti tekući direktorijum na kojem je pozicionirano do momenta pozivanja dijaloga
SaveFileDialog1.RestoreDirectory = true;
Title
Ovaj properti se koristi za postavljanje naslova (Title) na dijalog, kao na primer:
SaveFileDialog1.Title = "Odaberite Text Fajl";
Default Extension
Ovaj properti predstavlja podrazumevanu (default) ekstenziju za naziv fajla.
Ako želite, na primer, da to bude txt, onda:
SaveFileDialog1.DefaultExt = "txt";
Filter
Ovo se koristi za filtriranje vrste fajla, pa će biti vidljivi samo fajlovi koji zadovoljavaju navedene uslove. Na primer, ako se želi ograničiti da se vide samo tekstualni fajlovi kao jedna opcija, a kao druga opcija da se vide svi fajlovi:
SaveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
Check File Exists i Check Path Exists
Properti CheckFileExists ukazuje da li će da bude prikazano upozorenje ako korisnik specificira naziv fajla koji ne postoji. Slično tome, properti CheckPathExists ukazuje da li će da bude prikazano upozorenje ako korisnik specificira putanju koja ne postoji.
SaveFileDialog1.CheckFileExists = true;
SaveFileDialog1.CheckPathExists = true;
File Name i File Names
Properti FileName predstavlja ime fajla koji je selektovan u dijalogu.
Na primer, ako želite da u tekstboksu prikažete koje je ime fajla koje je odabrano:
textBox1.Text = SaveFileDialog1.FileName;
E sada, postoji i opcija MultiSelect property, koja ako je postavljena na true dozvoljava da se istovremeno selektuje više fajlova. Tada koristimo properti FileNames za prikaz svih imena fajlova koji su selektovani. Pokušajte ovo:
this.SaveFileDialog1.Multiselect = true;
foreach(String file in SaveFileDialog1.FileNames) {
MessageBox.Show(file);
}
U slučaju konzolne aplikacije:
prvo se u okviru Solution Explorer-a,
u Resources projekta treba dodati System.Windows.Forms,
a zatim se na vrhu treba dodati using System.Windows.Forms;,
i pre Main metode treba dodati [STAThread].
Ako ovo nije bilo dovoljno jasno, u nastavku je link ka uputstvu u slikama: