SlideShare une entreprise Scribd logo
1  sur  2
meslek sırrı MOBİL PROGRAMLAMA
PCWORLD.COM.TR HAZİRAN ’10116
Volkan Atasever
volkan@volkanatasever.com
www.volkanatasever.com
Dizin işlemlerinden sonra temel
dosya işlemlerini öğrenmemiz ge-
rekiyor. Bunun için önemli sınıfları ve bu
sınıfların metodlarını inceleyeceğiz. Dos-
yalarla çalışırken temel olan iki sınıfımız
mevcut File sınıfı ve FileInfo sınıfı bun-
ları incelerken en son olarak stream’ler
ile beraber dosyalar üstünde istediğimiz
her işlemi yaptırabileceğiz. Öncelikli öğ-
renmemiz gerekense bu iki sınıf... İki sı-
nıfta benzer özelliklere sahip. Sınıflarımı-
zı incelerken örnek uygulamalar üstün-
den gideceğiz.
File Sınıfı
Kullanıcı arayüzümüzü oluşturalım. Bu
arayüz en çok kullanılan işlemleri uygu-
layabilmek için tasarlanmıştır. Uygulama-
nın dizaynını yapabilmek için yeni bir pro-
je oluşturmanız gerekiyor. (Resim 1)
C# Kodu:
using System;
using System.Windows.Forms;
using System.IO;
namespace SmartDeviceProject15
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeCompo
nent();
}
private void button1_
Click(object sender, EventArgs e)
{
FileStream fstream =
File.Create(“volkan.txt”);
fstream.Close();
MessageBox.
Show(“Dosya oluşturuldu!”);
}
private void button2_
Click(object sender, EventArgs e)
{
File.Delete(@”My Do
cumentsvolkan.txt”);
MessageBox.
Show(“Dosya silindi”);
}
private void button3_
Click(object sender, EventArgs e)
{
if (File.Exists(@”My
Documentsvolkan.txt”))
{
MessageBox.
Show(“volkan.txt dosyası bulun
du!”);
}
else
{
MessageBox.
Show(“volkan.txt dosyası buluna
madı!”);
}
}
private void button4_
Click(object sender, EventArgs e)
{
File.Copy(“volkan.
txt”, @”My Documentsvolkan.
txt”);
MessageBox.
Show(“Dosya kopyalandı”);
}
private void button5_
Click(object sender, EventArgs e)
{
string str=File.
GetCreationTime(@”My Documents
volkan.txt”).ToString();
MessageBox.Show(str);
}
private void button6_
Click(object sender, EventArgs e)
{
File.Move(@”My Docu
mentsvolkan.txt”,@”My Documents
Personalvolkan.txt”);
MessageBox.
Show(“Dosya Taşnıdı”);
}
private void menuItem2_
Click(object sender, EventArgs e)
{
Application.Exit();
}
private void menuItem1_
Click(object sender, EventArgs e)
{
MessageBox.Show(“File
sınıfı ile dosya işlemleri...”);
}
}
}
Burada yapılan işlemleri adım adım açık-
layacağım. Baktığınız zaman her buton
olayı birbirinden bağımsız çalışıyor. Bunu
uygulamayı daha rahat anlatarak File sını-
fını en iyi şekilde irdelemek için yaptığımı
söyleyebilirim.
Dosya Oluştur (Buton 1): File sınıfı için-
deki Create metodu dosyayı FileStream
türünde döndürür. Bu nedenle bir FileSt-
ream sınıfına eşitledik. Bunun bir diğer ne-
deni ise bu dönüşü yakalayıp filestream’i
kapatmak istememizdir. Aksi halde fstre-
1
Temel dosya işlemlerine bir bakış ve kullanılan temel sınıfları yakından tanıyoruz.
Mobil Cihazda Dosya İşlemleri
mobil programlama_haziran.indd 116mobil programlama_haziran.indd 116 26.05.2010 20:3626.05.2010 20:36
meslek sırrı MOBİL PROGRAMLAMA
117PCWORLD.COM.TRHAZİRAN ’10
am.Close() metodunu kullanmazsak dos-
ya açık kalacak ve biz üzerinde işlem ya-
pamayacağız. Bu nedenle dosya yaratıl-
ma üzere açıldığı için onu kapatmamız
gerekmektedir. C# dilinden önce C veya
C++ dili kullananlar için dosya açıp kapat-
ma işlemleri yabancı gelmeyecektir.
Dosya Sil (Buton 2): Delete metodu ile
gösterdiğimiz yoldaki dosya silinecektir.
Dosya Mevcut mu? (Buton 3): Exists
metodu dosya varsa true yoksa false
döndürmektedir. Bu sebepten dolayı dos-
ya varsa “if” bloguna düşecektir. Karşıla-
şacağımız mesaj dosya bulundu şeklinde
olacaktır. Eğer dosya bulunamazsa else
bloguna düşüp bize diğer mesajı göste-
recektir.
Dosyayı Kopyala (Buton 4): Copy me-
todu iki parametre alır. İlk parametre
hangi dosyanın kopyalanacağını belir-
ten kaynak yolu göstermelidir. İkinci pa-
rametre ise nereye kopyalanacağını belir-
ten hedef yolu olmalıdır.
Dosyayı Oluşturma Bilgileri (Buton
5): GetCreationTime isminden de anlaşıl-
dığı gibi dosyanın oluşturulma zamanını
verir. Benzer metodlar dizinler içinde de
ele alınmıştı.
Dosyayı Taşı (Buton 6): Move meto-
du, copy metodu ile benzerlik gösterir.
İki parametre alır. İlk parametre kaynak
yani taşınacak dosyanın yolunu belirler.
İkinci parametre ise hedef yolu yani han-
gi klasörün altına taşınacağını gösterme-
miz için kullanılır.
FileInfo sınıfı
FileInfo sınıfı ile File sınıfı benzerlik göster-
mektedir. Bir nesne birden fazla kullanıla-
caksa bu sınıf önem kazanabilir. Bu sınıf-
daki temel farkları ele alan bbir örnek uy-
gulama üzerinde duracağım.
Kullanıcı arayüz tasarımımız: (Resim 2)
using System;
using System.Windows.Forms;
using System.IO;
namespace SmartDeviceProject17
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeCompo
nent();
}
private void menuItem1_
Click(object sender, EventArgs e)
{
DirectoryInfo dirin
fo = new DirectoryInfo(@”My Docu
mentsMy Pictures”);
FileInfo[] fidizi =
dirinfo.GetFiles();
foreach (FileInfo fi
in fidizi)
{
listBox1.Items.
Add(“Dosya İsmi:” + fi.Name + “
Boyutu:” + fi.Length);
listBox1.Items.
Add(“Son Erişim Zamanı:” +
fi.LastAccessTime);
listBox1.Items.
Add(“Dosyanın Yaratılma tarihi” +
fi.CreationTime);
listBox1.Items.
Add(“Dosyanın uzantısı:” +
fi.Extension);
listBox1.Items.
Add(“---------------”);
}
}
private void menuItem2_
Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
Uygulamanın çalıştırılmış ekran görüntü-
sü Resim 3’teki gibidir.
Uygulamamız FileInfo sınıfının özellikleri-
ni ve kullanım biçimini işlemiştir. Kullanı-
cı arayüzüne baktığımız zaman iki menu-
item, bir listbox ve bir label kontrolü gör-
mekteyiz. Label sadece uygulamanın is-
mini text olarak bize yansıtmak için kul-
lanılmıştır. Menuitem’larda ise bir liste-
le ve çıkış kontrolünü görüyoruz. Çıkış
standart çıkış işlemini yapıp “application.
exit()” metodu ile uygulamayı sonlandır-
maya yaramakta. FileInfo sınıfı ile ilgili en
can alıcı nokta ise listele kontrolümüzdür.
Burada yaptığımız işlem, dizinler bölü-
münde gördüğümüz “DirectoryInfo” sı-
nıfını oluşturmak. Ardından bir “FileInfo”
dizisi oluşturuyoruz ve oluşturduğumuz
DirectoryInfo üzerinden “GetFiles” meto-
dunu kullanarak bilgiler bu dizinin içine
atıyoruz. Bir diziye veya herhangi bir liste-
ye ulaşmak için kullanabileceğimiz “fore-
ach” döngüsü burada da imdadımıza ye-
tişiyor. Foreach döngüsü ile tek tek dos-
yalara erişiyoruz. Bundan sonra ise FileIn-
fo sınıfı içindeki metodları kullanarak dos-
ya bilgilerine erişim sağlıyoruz. Bu metod-
lar şu anlamları taşıyor.
Name: Dosyanın ismini geri döndürür.
Length: Dosyanın boyutunu geri dön-
dürür.
LastAccessTime: Dosyaya son erişim ta-
rihini bize döndürür.
CreationTime: Dosyanın yaratılma tari-
hini ve zamanını bize döndürür.
Extension: Dosyanın uzantısını öğren-
memize yarar. 
2
3
mobil programlama_haziran.indd 117mobil programlama_haziran.indd 117 26.05.2010 20:3626.05.2010 20:36

Contenu connexe

Similaire à 2010 06 (13)

final
finalfinal
final
 
Temel Linux Kullanımı ve Komutları
Temel Linux Kullanımı ve KomutlarıTemel Linux Kullanımı ve Komutları
Temel Linux Kullanımı ve Komutları
 
C dosya-isleme
C dosya-islemeC dosya-isleme
C dosya-isleme
 
Sunu (1)
Sunu (1)Sunu (1)
Sunu (1)
 
Hüseyin körbalta veri_kurtarma
Hüseyin körbalta veri_kurtarmaHüseyin körbalta veri_kurtarma
Hüseyin körbalta veri_kurtarma
 
Git Sunumu
Git SunumuGit Sunumu
Git Sunumu
 
A'dan Z'ye | Social Engineer Toolkit (SET)
A'dan Z'ye | Social Engineer Toolkit (SET)A'dan Z'ye | Social Engineer Toolkit (SET)
A'dan Z'ye | Social Engineer Toolkit (SET)
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
Adli bilisim dergisi_sayi_1
Adli bilisim dergisi_sayi_1Adli bilisim dergisi_sayi_1
Adli bilisim dergisi_sayi_1
 
Adli Bilisim Okumalari
Adli Bilisim OkumalariAdli Bilisim Okumalari
Adli Bilisim Okumalari
 
Power point Kullanımı
Power point KullanımıPower point Kullanımı
Power point Kullanımı
 
Snu raz
Snu razSnu raz
Snu raz
 
Bilgisayarkullanımı.ppt_ 3
Bilgisayarkullanımı.ppt_ 3Bilgisayarkullanımı.ppt_ 3
Bilgisayarkullanımı.ppt_ 3
 

Plus de Volkan Atasever

Plus de Volkan Atasever (10)

Bitsector 3
Bitsector 3Bitsector 3
Bitsector 3
 
Bitsector 2
Bitsector 2Bitsector 2
Bitsector 2
 
Bitsector Sayı 01
Bitsector Sayı 01Bitsector Sayı 01
Bitsector Sayı 01
 
Semih Arslan'ın Volkan Atasever ile Röportajı
Semih Arslan'ın Volkan Atasever ile RöportajıSemih Arslan'ın Volkan Atasever ile Röportajı
Semih Arslan'ın Volkan Atasever ile Röportajı
 
T3 Dergisi Haziran 2013 yazım
T3 Dergisi Haziran 2013 yazımT3 Dergisi Haziran 2013 yazım
T3 Dergisi Haziran 2013 yazım
 
Ti ks vb v1.0
Ti ks vb v1.0Ti ks vb v1.0
Ti ks vb v1.0
 
Tiks cs v1.0
Tiks cs v1.0Tiks cs v1.0
Tiks cs v1.0
 
Teknolojinin Geleceği
Teknolojinin GeleceğiTeknolojinin Geleceği
Teknolojinin Geleceği
 
Csharp 3.0
Csharp 3.0Csharp 3.0
Csharp 3.0
 
Kariyer Günleri
Kariyer GünleriKariyer Günleri
Kariyer Günleri
 

2010 06

  • 1. meslek sırrı MOBİL PROGRAMLAMA PCWORLD.COM.TR HAZİRAN ’10116 Volkan Atasever volkan@volkanatasever.com www.volkanatasever.com Dizin işlemlerinden sonra temel dosya işlemlerini öğrenmemiz ge- rekiyor. Bunun için önemli sınıfları ve bu sınıfların metodlarını inceleyeceğiz. Dos- yalarla çalışırken temel olan iki sınıfımız mevcut File sınıfı ve FileInfo sınıfı bun- ları incelerken en son olarak stream’ler ile beraber dosyalar üstünde istediğimiz her işlemi yaptırabileceğiz. Öncelikli öğ- renmemiz gerekense bu iki sınıf... İki sı- nıfta benzer özelliklere sahip. Sınıflarımı- zı incelerken örnek uygulamalar üstün- den gideceğiz. File Sınıfı Kullanıcı arayüzümüzü oluşturalım. Bu arayüz en çok kullanılan işlemleri uygu- layabilmek için tasarlanmıştır. Uygulama- nın dizaynını yapabilmek için yeni bir pro- je oluşturmanız gerekiyor. (Resim 1) C# Kodu: using System; using System.Windows.Forms; using System.IO; namespace SmartDeviceProject15 { public partial class Form1 : Form { public Form1() { InitializeCompo nent(); } private void button1_ Click(object sender, EventArgs e) { FileStream fstream = File.Create(“volkan.txt”); fstream.Close(); MessageBox. Show(“Dosya oluşturuldu!”); } private void button2_ Click(object sender, EventArgs e) { File.Delete(@”My Do cumentsvolkan.txt”); MessageBox. Show(“Dosya silindi”); } private void button3_ Click(object sender, EventArgs e) { if (File.Exists(@”My Documentsvolkan.txt”)) { MessageBox. Show(“volkan.txt dosyası bulun du!”); } else { MessageBox. Show(“volkan.txt dosyası buluna madı!”); } } private void button4_ Click(object sender, EventArgs e) { File.Copy(“volkan. txt”, @”My Documentsvolkan. txt”); MessageBox. Show(“Dosya kopyalandı”); } private void button5_ Click(object sender, EventArgs e) { string str=File. GetCreationTime(@”My Documents volkan.txt”).ToString(); MessageBox.Show(str); } private void button6_ Click(object sender, EventArgs e) { File.Move(@”My Docu mentsvolkan.txt”,@”My Documents Personalvolkan.txt”); MessageBox. Show(“Dosya Taşnıdı”); } private void menuItem2_ Click(object sender, EventArgs e) { Application.Exit(); } private void menuItem1_ Click(object sender, EventArgs e) { MessageBox.Show(“File sınıfı ile dosya işlemleri...”); } } } Burada yapılan işlemleri adım adım açık- layacağım. Baktığınız zaman her buton olayı birbirinden bağımsız çalışıyor. Bunu uygulamayı daha rahat anlatarak File sını- fını en iyi şekilde irdelemek için yaptığımı söyleyebilirim. Dosya Oluştur (Buton 1): File sınıfı için- deki Create metodu dosyayı FileStream türünde döndürür. Bu nedenle bir FileSt- ream sınıfına eşitledik. Bunun bir diğer ne- deni ise bu dönüşü yakalayıp filestream’i kapatmak istememizdir. Aksi halde fstre- 1 Temel dosya işlemlerine bir bakış ve kullanılan temel sınıfları yakından tanıyoruz. Mobil Cihazda Dosya İşlemleri mobil programlama_haziran.indd 116mobil programlama_haziran.indd 116 26.05.2010 20:3626.05.2010 20:36
  • 2. meslek sırrı MOBİL PROGRAMLAMA 117PCWORLD.COM.TRHAZİRAN ’10 am.Close() metodunu kullanmazsak dos- ya açık kalacak ve biz üzerinde işlem ya- pamayacağız. Bu nedenle dosya yaratıl- ma üzere açıldığı için onu kapatmamız gerekmektedir. C# dilinden önce C veya C++ dili kullananlar için dosya açıp kapat- ma işlemleri yabancı gelmeyecektir. Dosya Sil (Buton 2): Delete metodu ile gösterdiğimiz yoldaki dosya silinecektir. Dosya Mevcut mu? (Buton 3): Exists metodu dosya varsa true yoksa false döndürmektedir. Bu sebepten dolayı dos- ya varsa “if” bloguna düşecektir. Karşıla- şacağımız mesaj dosya bulundu şeklinde olacaktır. Eğer dosya bulunamazsa else bloguna düşüp bize diğer mesajı göste- recektir. Dosyayı Kopyala (Buton 4): Copy me- todu iki parametre alır. İlk parametre hangi dosyanın kopyalanacağını belir- ten kaynak yolu göstermelidir. İkinci pa- rametre ise nereye kopyalanacağını belir- ten hedef yolu olmalıdır. Dosyayı Oluşturma Bilgileri (Buton 5): GetCreationTime isminden de anlaşıl- dığı gibi dosyanın oluşturulma zamanını verir. Benzer metodlar dizinler içinde de ele alınmıştı. Dosyayı Taşı (Buton 6): Move meto- du, copy metodu ile benzerlik gösterir. İki parametre alır. İlk parametre kaynak yani taşınacak dosyanın yolunu belirler. İkinci parametre ise hedef yolu yani han- gi klasörün altına taşınacağını gösterme- miz için kullanılır. FileInfo sınıfı FileInfo sınıfı ile File sınıfı benzerlik göster- mektedir. Bir nesne birden fazla kullanıla- caksa bu sınıf önem kazanabilir. Bu sınıf- daki temel farkları ele alan bbir örnek uy- gulama üzerinde duracağım. Kullanıcı arayüz tasarımımız: (Resim 2) using System; using System.Windows.Forms; using System.IO; namespace SmartDeviceProject17 { public partial class Form1 : Form { public Form1() { InitializeCompo nent(); } private void menuItem1_ Click(object sender, EventArgs e) { DirectoryInfo dirin fo = new DirectoryInfo(@”My Docu mentsMy Pictures”); FileInfo[] fidizi = dirinfo.GetFiles(); foreach (FileInfo fi in fidizi) { listBox1.Items. Add(“Dosya İsmi:” + fi.Name + “ Boyutu:” + fi.Length); listBox1.Items. Add(“Son Erişim Zamanı:” + fi.LastAccessTime); listBox1.Items. Add(“Dosyanın Yaratılma tarihi” + fi.CreationTime); listBox1.Items. Add(“Dosyanın uzantısı:” + fi.Extension); listBox1.Items. Add(“---------------”); } } private void menuItem2_ Click(object sender, EventArgs e) { Application.Exit(); } } } Uygulamanın çalıştırılmış ekran görüntü- sü Resim 3’teki gibidir. Uygulamamız FileInfo sınıfının özellikleri- ni ve kullanım biçimini işlemiştir. Kullanı- cı arayüzüne baktığımız zaman iki menu- item, bir listbox ve bir label kontrolü gör- mekteyiz. Label sadece uygulamanın is- mini text olarak bize yansıtmak için kul- lanılmıştır. Menuitem’larda ise bir liste- le ve çıkış kontrolünü görüyoruz. Çıkış standart çıkış işlemini yapıp “application. exit()” metodu ile uygulamayı sonlandır- maya yaramakta. FileInfo sınıfı ile ilgili en can alıcı nokta ise listele kontrolümüzdür. Burada yaptığımız işlem, dizinler bölü- münde gördüğümüz “DirectoryInfo” sı- nıfını oluşturmak. Ardından bir “FileInfo” dizisi oluşturuyoruz ve oluşturduğumuz DirectoryInfo üzerinden “GetFiles” meto- dunu kullanarak bilgiler bu dizinin içine atıyoruz. Bir diziye veya herhangi bir liste- ye ulaşmak için kullanabileceğimiz “fore- ach” döngüsü burada da imdadımıza ye- tişiyor. Foreach döngüsü ile tek tek dos- yalara erişiyoruz. Bundan sonra ise FileIn- fo sınıfı içindeki metodları kullanarak dos- ya bilgilerine erişim sağlıyoruz. Bu metod- lar şu anlamları taşıyor. Name: Dosyanın ismini geri döndürür. Length: Dosyanın boyutunu geri dön- dürür. LastAccessTime: Dosyaya son erişim ta- rihini bize döndürür. CreationTime: Dosyanın yaratılma tari- hini ve zamanını bize döndürür. Extension: Dosyanın uzantısını öğren- memize yarar.  2 3 mobil programlama_haziran.indd 117mobil programlama_haziran.indd 117 26.05.2010 20:3626.05.2010 20:36