08 December 2016

System.IO Örnekleri

Dosyalara bilgi girişi, dosyadan bilgi okuma, I/O işlemleri için kullanan namespace’dir. İçerisinde dosya, klasör ve bellek tabanlı işlemleri yapmak ve yönetebilmek için çeşitli sınıfları, yapıları, arabirimleri ve temsilcileri bulundurmaktadır.

Bu yazıda System.IO örneklerine bakacağız.

Örnek 1: İnternetten Dosya İndirme

Forma bir adet TextBox (txtUrl) ve Button (btnDownload) ve SaveFİleDialog (sfd) ekleyelim. TextBox’a url adresi girildiğinde dosya download işlemini gerçekleştirelim:

private void btnDownload_Click(object sender, EventArgs e)
 {
 WebClient webClient = new WebClient();
byte[] buffer = webClient.DownloadData(txtUrl.Text);
if (DialogResult.OK == sfd.ShowDialog())
 {
 FileStream fs = new FileStream(sfd.FileName, FileMode.Create);
 fs.Write(buffer, 0, buffer.Length);
 fs.Close();
 }
 }

Örnek 2: Veritabanına fotoğraf ekleme

Forma bir adet Buton ekleyelim (btnSave) ve OpenFileDialog (ofd). Butona tıkladığımızda fotoğrafı seçip veritabanına kaydedelim:

private void btnSave_Click(object sender, EventArgs e)
 {
 if (ofd.ShowDialog()== DialogResult.OK)
 {
 FileStream fs = new FileStream(ofd.FileName, FileMode.Open);
 byte[] buffer = new byte[fs.Length];
 fs.Read(buffer, 0, (int)fs.Length);
 fs.Close();
SqlConnection sqlcon = new SqlConnection("server=.;database=northwind;trusted_connection=true");
 SqlCommand sqlcmd = new SqlCommand("insert into Photos values(@p1)",sqlcon);
 sqlcmd.Parameters.AddWithValue("@p1", buffer);
 sqlcon.Open();
 sqlcmd.ExecuteNonQuery();
 sqlcon.Close();
 }
 }

Örnek 3: Dosya infosunu görüntüleme ve silme

Forma bir adet TextBox (txtPath) ve buton (btnBrowse) ekleyelim. OpenFileDialog ekleyelim. Dosya yolunu seçtiğimizde içeriği ListBox’da gösterelim (lbFileInfo) ve butona (btnDelete) tıkladığımızda dosyayı silelim.

FileInfo fi;
 private void btnBrowse_Click(object sender, EventArgs e)
 {
 //DialogResult dr = openFileDialog1.ShowDialog();
 //if(dr == DialogResult.OK)
 if (DialogResult.OK == openFileDialog1.ShowDialog())
 {
 string dosya = openFileDialog1.FileName;
 txtPath.Text = dosya;
 fi = new FileInfo(dosya);
 lbFileInfo.Items.Add(string.Format("Oluşturma Tarihi:{0}", fi.CreationTime));
 lbFileInfo.Items.Add(string.Format("Uzantısı: {0}", fi.Extension));
 lbFileInfo.Items.Add(string.Format("Uzunluk:{0}", fi.Length));
 lbFileInfo.Items.Add(string.Format("Son Yazma Tarihi:{0}", fi.LastWriteTime));
}
 }
private void btnDelete_Click(object sender, EventArgs e)
 {
 if (fi != null)
 {
 fi.Delete();
 }
}

Örnek 4: İnternetten resim açma

Bir adet TextBox, Button (btnPreview) ve pictureBox ekleyelim:

private void btnPreview_Click(object sender, EventArgs e)
 {
 WebClient webClient = new WebClient();
 byte[] buffer = webClient.DownloadData(textBox1.Text);
MemoryStream memoryStream = new MemoryStream();
 memoryStream.Write(buffer, 0, buffer.Length);
Image img = Image.FromStream(memoryStream);
 pictureBox1.Image = img;
 memoryStream.Close();
 }

Örnek 5: Sürücü özelliklerini görüntüleme

Forma bir adet ComboBox, ve ListBox (lbSurucuOzellikleri) ekleyelim. Sürücü özelliklerini Listboxda görüntüleyelim.

private void Form1_Load(object sender, EventArgs e)
 {
 DriveInfo[] suruculer = DriveInfo.GetDrives();
 foreach (DriveInfo di in suruculer)
 {
 cbSuruculer.Items.Add(di);
 }
 cbSuruculer.SelectedIndex = 1;
 }
private void cbSuruculer_SelectedIndexChanged(object sender, EventArgs e)
 {
 lbSurucuOzellikleri.Items.Clear();
 DriveInfo seciliSurucu = cbSuruculer.SelectedItem as DriveInfo;
 if (seciliSurucu != null)
 {
 try
 {
 lbSurucuOzellikleri.Items.Add(string.Format("Drive Format: {0}", seciliSurucu.DriveFormat));
 lbSurucuOzellikleri.Items.Add(string.Format("Drive Type: {0}", seciliSurucu.DriveType));
 lbSurucuOzellikleri.Items.Add(string.Format("Avaible Free Space : {0}", seciliSurucu.AvailableFreeSpace));
 }
 catch (Exception)
 {
MessageBox.Show("Aygıt özelliklerine Erişilemiyor");
}
 }
 }

Örnek 6: Klasör oluşturulma tarihini görüntüleme, alt klasör oluşturma ve silme

Bir adet ListBox (lbInfo) ve 3 button (btnDelete – btnCreate – btnBrowse) ve folderBrowserDialog ekleyelim.

DirectoryInfo di;
 private void btnBrowse_Click(object sender, EventArgs e)
 {
 if(DialogResult.OK == folderBrowserDialog1.ShowDialog())
 {
 string path = folderBrowserDialog1.SelectedPath;
 di = new DirectoryInfo(path);
lbInfo.Items.Add(string.Format("Creation Time: {0}",di.CreationTime));
 lbInfo.Items.Add("");

 FileInfo[] files = di.GetFiles();
 foreach (FileInfo file in files)
 {
 lbInfo.Items.Add(file.Name);
 }
 }
 }
private void btnCreate_Click(object sender, EventArgs e)
 {
 di.CreateSubdirectory("Sub Folder");
}
private void btnDelete_Click(object sender, EventArgs e)
 {
 di.Delete();
 }