using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Serialization;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Birden fazla yerde kullandığımdan bu değişkeni global yaptım
string kaydedilecekDosyaYolu = System.AppDomain.CurrentDomain.BaseDirectory + "\\dosyaAdlari.xml";
private void Form1_Load(object sender, EventArgs e)
{
try
{
//Uygulamadan çıkarken kaydettiğimiz dosya adlarını listboxa ekleyelim
List<string> dosyaAdlari = new List<string>();
using (System.IO.StreamReader okuyucu = new System.IO.StreamReader(kaydedilecekDosyaYolu))
{
XmlSerializer deSerilestirici = new XmlSerializer(typeof(List<string>));
dosyaAdlari = (List<string>)deSerilestirici.Deserialize(okuyucu);
}
for (int i = 0; i < dosyaAdlari.Count; i++)
{
listBox1.Items.Add(dosyaAdlari[i]);
}
}
catch//Kaydettiğimiz dosya yoksa sessizce hatayı fırlat. Boş bir listbox demek bu
{
}
}
private void btnDosyaEkle_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (!String.IsNullOrWhiteSpace(openFileDialog1.FileName))
{
listBox1.Items.Add(openFileDialog1.FileName);
}
}
}
//listboxdan dosya adını seç ve çalıştır
private void btnCalistir_Click(object sender, EventArgs e)
{
var secilenDosya = listBox1.SelectedItem as string;
if (secilenDosya != null)
{
System.Diagnostics.Process.Start(secilenDosya);
}
}
//Çıkışta dosya adlarını xml dosyasına kaydediyoruz.
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//listboxdaki tüm dosya adlarını kaydetmek için almalıyız.
List<string> dosyaAdlari=new List<string>();
for (int i = 0; i < listBox1.Items.Count; i++)
{
dosyaAdlari.Add(listBox1.Items[i].ToString());
}
//Çıkışta dosyaları xmle kaydedelim
using (System.IO.StreamWriter yazici = new System.IO.StreamWriter(kaydedilecekDosyaYolu))
{
XmlSerializer serilestirici = new XmlSerializer(typeof(List<string>));
serilestirici.Serialize(yazici, dosyaAdlari);
}
}
}
}