SlideShare une entreprise Scribd logo
1  sur  3
meslek sırrı MOBİL PROGRAMLAMA
PCWORLD.COM.TR MAYIS ’10114
Volkan Atasever
volkan@volkanatasever.com
www.volkanatasever.com
Bu ayki yazımda artık yavaş yavaş
teknik derinliklere inmeye başla-
yabileceğiz. Baktığımız zaman bir uygu-
lama yazıp bunu cihazımıza aktarabil-
mekteyiz. Aynı zamanda sık kullanılan
kontrollere de hakimiz. Standart bir uy-
gulamayı rahatlıkla yazabiliriz. Tabii bu
genellikle bir işi yapan ve herhangi bir
XML veya Database kullanmayan bir
uygulama olacaktır. Küçük işlemler için
ise dosyalarla çalışmak da bir çözüm
olabilmektedir. Bu ayki yazımda okuma
ve yazma işlemlerine bir giriş yapaca-
ğım. Ardından yavaş yavaş tüm dosya
ve dizin yapısına hakim olmanızı amaç-
lamaktayım.
Okuma ve yazma işlemleri
Dosyalarla çalışırken ilk yapacağımız iş-
lem cihazın dizinlerine ve dizinlerle ilgi-
li sınıflarına hakim olmaktan geçer. Bu-
nun için .NET Compact Framework bize
Directory ve DirectoryInfo sınıflarını su-
nar. İçlerinde static metodlar barındıran
bu sınıflar sayesinde dizin işlemlerimizi
gerçekleştirebilmekteyiz. İki sınıf çok kü-
çük farklarla beraber benzerlik göster-
mektedir.
Directory Sınıfı
Directory sınıfını açıklarken sadece kod
parçaları ile değil kullanıcı arayüzü olan
bir uygulama ile açıklamak istiyorum.
Bunun için aşağıdaki arayüzü tasarımını-
za uygulayın. (Resim 1)
6 butonda Directory sınıfına ait işlem-
ler yapacağız. 6 click event’ine butonlar-
da gördüğümüz işlemleri yaptıracağız.
Şu anda dizin isimlerini kullanıcıdan al-
madan kendi örnek dizin isimlerimizi ko-
dun içine gömeceğiz. Directory sınıfına
ait static metodlarla yaptığımız uygula-
ma aşağıdadır. Butonların isimleri yuka-
rıdan aşağı doğru button1, button2,...
şeklinde verilmiştir. C# Kodu:
using System;
using System.Windows.Forms;
using System.IO;
Bu ayki yazımda okuma ve yazma işlemlerine bir giriş yapacağım. Ardından yavaş yavaş
tüm dosya ve dizin yapısına hakim olmanızı amaçlamaktayım.
Okuma ve Yazma İşlemleri
mobil programlama_mayis.indd 114mobil programlama_mayis.indd 114 26.04.2010 19:1226.04.2010 19:12
meslek sırrı MOBİL PROGRAMLAMA
115PCWORLD.COM.TRMAYIS ’10
namespace DirectorySinifi
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeCompo
nent();
}
private void button1_
Click(object sender, EventArgs e)
{
Directory.
CreateDirectory(@”My Documents
deneme”);
MessageBox.
Show(“Deneme isimli dizin oluştu
ruldu”);
}
private void button2_
Click(object sender, EventArgs e)
{
if (Directory.
Exists(@”My Documentsdeneme”))
MessageBox.
Show(“deneme isimli bir dizin
kullanımda”);
else
MessageBox.
Show(“deneme isimli bir dizin
kullanımda değil”);
}
private void button3_
Click(object sender, EventArgs e)
{
string listele=””;
foreach (string
dosyaismi in Directory.
GetDirectories(“My Documents”))
{
listele += dosya
ismi + “-”;
}
MessageBox.
Show(listele);
}
private void button4_
Click(object sender, EventArgs e)
{
Directory.Move(@”My
Documentsdeneme”, @”My Docu
mentsPersonaldeneme”);
MessageBox.
Show(“Dizin My Documents altın
da Personal dizininin altına ta
şındı”);
}
private void button5_
Click(object sender, EventArgs e)
{
Directory.Delete(@”My
DocumentsPersonaldeneme”);
MessageBox.
Show(“Dizin silindi”);
}
private void button6_
Click(object sender, EventArgs e)
{
string
zaman=Directory.
GetCreationTime(@”My Documents
deneme”).ToString();
MessageBox.Show(“Bu
dizin”+ zaman+” tarihinde oluştu
ruldu”);
}
private void menuItem1_
Click(object sender, EventArgs e)
{
MessageBox.
Show(“Directory Sınıfı ile IO iş
lemleri...”);
}
private void menuItem2_
Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
Uygulamamızı tamamladık. Directory
sınıfına ait işlemler gerçekleştirdiğimiz
bu uygulamanın her bir buton click ola-
yına directory sınfına ait bir işlem ger-
çekleştirdi. Bunun için her bir butonu
ayrı ayrı ele alarak ne yapıldığını ince-
leyeceğiz.
“Dizin Oluştur” Butonu (Buton 1):
Bu butona tıkladığımız zaman Directory
sınıfının static bir metodu olan Create-
Directory ile herhangi bir klasör oluştur-
duk. İsmi koda gömülü bir şekilde ver-
diğimiz gibi dinamik olarak bir textbox
ile veya kullanıcıdan herhangi bir seçim
yapmasını sağlayarak belirleyebilirsiniz.
”Dizin Mevcut mu?” Butonu (Buton
2): Bu butona oluşturduğumuz zaman
verdiğimiz dizinin o konumda mevcut
olup olmadığına bakmaktadır. If deyi-
mi içerisinde eğer mevcutsa “true” ola-
rak döner. Değilse if-else yapısında else
kısmına düşer.
“Dizin Listele” Butonu (Buton 3): Bir
“foreach” döngüsü sayesinde “getdi-
rectories” metodumuza parametre ola-
rak istediğimiz dizinin adresini veriyo-
ruz. Bu sayede “foreach” döngüsü her
çalıştığında bize altındaki dizinleri tek
tek verir. Bunları string olarak döndür-
düğümüz için herhangi bir string değiş-
kende sakladık. Ardından mesaj kutu
ile kullanıcıya gösterdik. Bir listbox ya-
pısı bu listeyi göstermek için daha şık
olabilirdi. Bir tree yapısı ise profesyonel
kullanımda daha çok etkileyici olur.
“Dizin Taşı” Butonu (Buton 4): Direc-
tory.Move metodumuz iki parametre
almaktadır. İlk parametre hangi dizinin
taşınacağı, ikinci parametre ise nereye
taşınacağı ile ilgilidir.
1
2
mobil programlama_mayis.indd 115mobil programlama_mayis.indd 115 26.04.2010 19:1226.04.2010 19:12
meslek sırrı MOBİL PROGRAMLAMA
PCWORLD.COM.TR MART ’10116
“Dizin Sil” Butonu (Buton 5): Direc-
tory.Delete metodu yolunu verdiğimiz
dizini siler.
“Dizin Oluşturma Bilgileri” Butonu
(Buton 6): Directory.GetCreationTime
(dizin yolu) ile yolunu verdiğimiz dizinin
oluşturulma bilgilerine ve tarihine ula-
şabilmekteyiz.
Directory sınıfındaki static
metodlardan bazıları
GetCurrentDirectory Metodu: O
anda çalışan uygulamanın hangi klasör-
de olduğunu bize geri döndürür.
GetLastAccessTime Metodu: Belirtti-
ğimiz dizine son erişim zamanını bize
geri döndürür.
GetLastWriteTime Metodu: Belirttiği-
miz dizine en son yapılan yazım zama-
nını bize geri döndürür.
DirectoryInfo Sınıfı
DirectoryInfo sınıfı Directory sınfıı ile
benzerlik göstermesine rağmen tüm
üyeleri static değildir. Bunun için sınıfı
canlandırmamız ve nesne olarak kullan-
mamız gerekir. Başka bir deyişle sınıfın
örneğini türetmemiz gerekiyor.
Öncelikle DirectoryInfo sınıfı ile en çok
kullanılan metodları bir uygulama üs-
tünde göstereceğiz. Bunun için önce-
likle kullanıcı arayüzümüzü oluşturalım.
(Resim 2)
Uygulamamız iki buton, bir textbox ve
bir listbox’dan oluşuyor. Uygulama-
da çıkabilmek ve uygulama bilgisi için
menuitem’lara bir çıkış ve DirectoryIn-
fo butonu ekledik. Formumuzun başlığı
ise konumuzla alakalı olarak Director-
yInfo Sınıfı ile IO şeklinde değiştirdik.
Arayüzden de anlayabileceğimiz gibi
textbox’a yazdığımız yazı alt dizinimi-
zim ismi olacak ve bizim belirlediğimiz
ve koda gömdüğümüz bir dizinin altın-
da oluşturulacak. Bu sayede kullanıcı-
dan alacağımız bir isimle dizin oluştura-
bileceğiz. Alt dizileri listele kısmında ise
bizim koda gömdüğümüz dizinin alt di-
zinleri listelenmiş olacak. (Resim 3) C#
Kodu:
using System;
using System.Windows.Forms;
using System.IO;
namespace DirectoryInfoileio
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeCompo
nent();
}
private void Form1_
Load(object sender, EventArgs e)
{
DirectoryInfo dirin
fo = new DirectoryInfo(@”My Docu
mentsPersonaldeneme”);
dirinfo.Create();
}
private void button1_
Click(object sender, EventArgs e)
{
DirectoryInfo dirin
fo = new DirectoryInfo(@”My Docu
mentsPersonaldeneme”);
dirinfo.
CreateSubdirectory(textBox1.
Text);
MessageBox.
Show(textBox1.Text + “ isimli alt
dizin oluşturuldu”);
}
private void button2_
Click(object sender, EventArgs e)
{
DirectoryInfo dirin
fo = new DirectoryInfo(@”My Docu
mentsPersonaldeneme”);
foreach (DirectoryIn
fo info in dirinfo.GetDirectori
es())
{
listBox1.Items.
Add(info.Name);
}
}
private void menuItem1_
Click(object sender, EventArgs e)
{
MessageBox.
Show(“DirectoryInfo sınıfı ile IO
işlemleri...”);
}
private void menuItem2_
Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
Uygulamanın
çalıştırılmış çıktısı
Uygulamayı üç bölümde incelersen bi-
rinci bölüm form’un load event’inde
yani form yüklenirken yapılan işlemler,
alt dizin oluştur butonuna basınca yapı-
lan işlemler ve alt dizinleri listele buto-
nuna basılınca yapılan işlemler olarak üç
bölümde inceleyebiliriz.
Form1_Load olayında da gördüğünüz
gibi form yüklenirken My Documents
Personal altında deneme isimli bir dizin
oluşturuluyor. Uygulamanın geri kalan
kısmındaki işlemlerde bu dizin üstünden
gerçekleştirilmiştir.
Form1_Load olayında DirectoryInfo sını-
fını türetirken bir dizin ismi belirledik. Di-
rinfo.create metodu ile ise bu dizin oluş-
turuldu.
Alt dizin oluştur butonunda ise, yine be-
lirlediğimiz dizin üstünde çalışmaya baş-
ladık. CreateSubDirectory metodu ile ise
textbox’da kullanıcıdan alınan isimle bir
dizin oluşturuldu. Foreach döngüsü yar-
dımıyla ise GetDirectories() metodunu
kullanarak gösterdiğimiz dizinin altdizin-
lerini listeleyebildik. Listeyi ise bir listbox
aracılığıyla kullanıcıyla paylaşmış olduk.
Bu ay dosyalarla okuma yazma işlemle-
rini yapmak için dizinlerle ilgili işlemle-
rimizden bahsettik. Yeri geldiği zaman
daha ince noktalara da değineceğim.
Dizinler okuma yazma işlemlerini yap-
mak için ilk adım olmak durumundadır-
lar. Eğer dizin işlemlerine hakim değilsek
diğer dosya durumlarına da hakim ola-
mayız. 
3
mobil programlama_mayis.indd 116mobil programlama_mayis.indd 116 26.04.2010 19:1226.04.2010 19:12

Contenu connexe

En vedette (6)

Aralık 2009 PCWorld Yazım
Aralık 2009 PCWorld YazımAralık 2009 PCWorld Yazım
Aralık 2009 PCWorld Yazım
 
2010 03
2010 032010 03
2010 03
 
2010 04
2010 042010 04
2010 04
 
2010 07
2010 072010 07
2010 07
 
2010 01
2010 012010 01
2010 01
 
ARM Programlama
ARM ProgramlamaARM Programlama
ARM Programlama
 

Similaire à 2010 05

Similaire à 2010 05 (8)

Delphi 7
Delphi 7Delphi 7
Delphi 7
 
İleri Seviye Programlama 2
İleri Seviye Programlama 2İleri Seviye Programlama 2
İleri Seviye Programlama 2
 
Görsel+iii..
Görsel+iii..Görsel+iii..
Görsel+iii..
 
Access
AccessAccess
Access
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
Access
AccessAccess
Access
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Ozgur web-gunleri-sunum
Ozgur web-gunleri-sunumOzgur web-gunleri-sunum
Ozgur web-gunleri-sunum
 

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 05

  • 1. meslek sırrı MOBİL PROGRAMLAMA PCWORLD.COM.TR MAYIS ’10114 Volkan Atasever volkan@volkanatasever.com www.volkanatasever.com Bu ayki yazımda artık yavaş yavaş teknik derinliklere inmeye başla- yabileceğiz. Baktığımız zaman bir uygu- lama yazıp bunu cihazımıza aktarabil- mekteyiz. Aynı zamanda sık kullanılan kontrollere de hakimiz. Standart bir uy- gulamayı rahatlıkla yazabiliriz. Tabii bu genellikle bir işi yapan ve herhangi bir XML veya Database kullanmayan bir uygulama olacaktır. Küçük işlemler için ise dosyalarla çalışmak da bir çözüm olabilmektedir. Bu ayki yazımda okuma ve yazma işlemlerine bir giriş yapaca- ğım. Ardından yavaş yavaş tüm dosya ve dizin yapısına hakim olmanızı amaç- lamaktayım. Okuma ve yazma işlemleri Dosyalarla çalışırken ilk yapacağımız iş- lem cihazın dizinlerine ve dizinlerle ilgi- li sınıflarına hakim olmaktan geçer. Bu- nun için .NET Compact Framework bize Directory ve DirectoryInfo sınıflarını su- nar. İçlerinde static metodlar barındıran bu sınıflar sayesinde dizin işlemlerimizi gerçekleştirebilmekteyiz. İki sınıf çok kü- çük farklarla beraber benzerlik göster- mektedir. Directory Sınıfı Directory sınıfını açıklarken sadece kod parçaları ile değil kullanıcı arayüzü olan bir uygulama ile açıklamak istiyorum. Bunun için aşağıdaki arayüzü tasarımını- za uygulayın. (Resim 1) 6 butonda Directory sınıfına ait işlem- ler yapacağız. 6 click event’ine butonlar- da gördüğümüz işlemleri yaptıracağız. Şu anda dizin isimlerini kullanıcıdan al- madan kendi örnek dizin isimlerimizi ko- dun içine gömeceğiz. Directory sınıfına ait static metodlarla yaptığımız uygula- ma aşağıdadır. Butonların isimleri yuka- rıdan aşağı doğru button1, button2,... şeklinde verilmiştir. C# Kodu: using System; using System.Windows.Forms; using System.IO; Bu ayki yazımda okuma ve yazma işlemlerine bir giriş yapacağım. Ardından yavaş yavaş tüm dosya ve dizin yapısına hakim olmanızı amaçlamaktayım. Okuma ve Yazma İşlemleri mobil programlama_mayis.indd 114mobil programlama_mayis.indd 114 26.04.2010 19:1226.04.2010 19:12
  • 2. meslek sırrı MOBİL PROGRAMLAMA 115PCWORLD.COM.TRMAYIS ’10 namespace DirectorySinifi { public partial class Form1 : Form { public Form1() { InitializeCompo nent(); } private void button1_ Click(object sender, EventArgs e) { Directory. CreateDirectory(@”My Documents deneme”); MessageBox. Show(“Deneme isimli dizin oluştu ruldu”); } private void button2_ Click(object sender, EventArgs e) { if (Directory. Exists(@”My Documentsdeneme”)) MessageBox. Show(“deneme isimli bir dizin kullanımda”); else MessageBox. Show(“deneme isimli bir dizin kullanımda değil”); } private void button3_ Click(object sender, EventArgs e) { string listele=””; foreach (string dosyaismi in Directory. GetDirectories(“My Documents”)) { listele += dosya ismi + “-”; } MessageBox. Show(listele); } private void button4_ Click(object sender, EventArgs e) { Directory.Move(@”My Documentsdeneme”, @”My Docu mentsPersonaldeneme”); MessageBox. Show(“Dizin My Documents altın da Personal dizininin altına ta şındı”); } private void button5_ Click(object sender, EventArgs e) { Directory.Delete(@”My DocumentsPersonaldeneme”); MessageBox. Show(“Dizin silindi”); } private void button6_ Click(object sender, EventArgs e) { string zaman=Directory. GetCreationTime(@”My Documents deneme”).ToString(); MessageBox.Show(“Bu dizin”+ zaman+” tarihinde oluştu ruldu”); } private void menuItem1_ Click(object sender, EventArgs e) { MessageBox. Show(“Directory Sınıfı ile IO iş lemleri...”); } private void menuItem2_ Click(object sender, EventArgs e) { Application.Exit(); } } } Uygulamamızı tamamladık. Directory sınıfına ait işlemler gerçekleştirdiğimiz bu uygulamanın her bir buton click ola- yına directory sınfına ait bir işlem ger- çekleştirdi. Bunun için her bir butonu ayrı ayrı ele alarak ne yapıldığını ince- leyeceğiz. “Dizin Oluştur” Butonu (Buton 1): Bu butona tıkladığımız zaman Directory sınıfının static bir metodu olan Create- Directory ile herhangi bir klasör oluştur- duk. İsmi koda gömülü bir şekilde ver- diğimiz gibi dinamik olarak bir textbox ile veya kullanıcıdan herhangi bir seçim yapmasını sağlayarak belirleyebilirsiniz. ”Dizin Mevcut mu?” Butonu (Buton 2): Bu butona oluşturduğumuz zaman verdiğimiz dizinin o konumda mevcut olup olmadığına bakmaktadır. If deyi- mi içerisinde eğer mevcutsa “true” ola- rak döner. Değilse if-else yapısında else kısmına düşer. “Dizin Listele” Butonu (Buton 3): Bir “foreach” döngüsü sayesinde “getdi- rectories” metodumuza parametre ola- rak istediğimiz dizinin adresini veriyo- ruz. Bu sayede “foreach” döngüsü her çalıştığında bize altındaki dizinleri tek tek verir. Bunları string olarak döndür- düğümüz için herhangi bir string değiş- kende sakladık. Ardından mesaj kutu ile kullanıcıya gösterdik. Bir listbox ya- pısı bu listeyi göstermek için daha şık olabilirdi. Bir tree yapısı ise profesyonel kullanımda daha çok etkileyici olur. “Dizin Taşı” Butonu (Buton 4): Direc- tory.Move metodumuz iki parametre almaktadır. İlk parametre hangi dizinin taşınacağı, ikinci parametre ise nereye taşınacağı ile ilgilidir. 1 2 mobil programlama_mayis.indd 115mobil programlama_mayis.indd 115 26.04.2010 19:1226.04.2010 19:12
  • 3. meslek sırrı MOBİL PROGRAMLAMA PCWORLD.COM.TR MART ’10116 “Dizin Sil” Butonu (Buton 5): Direc- tory.Delete metodu yolunu verdiğimiz dizini siler. “Dizin Oluşturma Bilgileri” Butonu (Buton 6): Directory.GetCreationTime (dizin yolu) ile yolunu verdiğimiz dizinin oluşturulma bilgilerine ve tarihine ula- şabilmekteyiz. Directory sınıfındaki static metodlardan bazıları GetCurrentDirectory Metodu: O anda çalışan uygulamanın hangi klasör- de olduğunu bize geri döndürür. GetLastAccessTime Metodu: Belirtti- ğimiz dizine son erişim zamanını bize geri döndürür. GetLastWriteTime Metodu: Belirttiği- miz dizine en son yapılan yazım zama- nını bize geri döndürür. DirectoryInfo Sınıfı DirectoryInfo sınıfı Directory sınfıı ile benzerlik göstermesine rağmen tüm üyeleri static değildir. Bunun için sınıfı canlandırmamız ve nesne olarak kullan- mamız gerekir. Başka bir deyişle sınıfın örneğini türetmemiz gerekiyor. Öncelikle DirectoryInfo sınıfı ile en çok kullanılan metodları bir uygulama üs- tünde göstereceğiz. Bunun için önce- likle kullanıcı arayüzümüzü oluşturalım. (Resim 2) Uygulamamız iki buton, bir textbox ve bir listbox’dan oluşuyor. Uygulama- da çıkabilmek ve uygulama bilgisi için menuitem’lara bir çıkış ve DirectoryIn- fo butonu ekledik. Formumuzun başlığı ise konumuzla alakalı olarak Director- yInfo Sınıfı ile IO şeklinde değiştirdik. Arayüzden de anlayabileceğimiz gibi textbox’a yazdığımız yazı alt dizinimi- zim ismi olacak ve bizim belirlediğimiz ve koda gömdüğümüz bir dizinin altın- da oluşturulacak. Bu sayede kullanıcı- dan alacağımız bir isimle dizin oluştura- bileceğiz. Alt dizileri listele kısmında ise bizim koda gömdüğümüz dizinin alt di- zinleri listelenmiş olacak. (Resim 3) C# Kodu: using System; using System.Windows.Forms; using System.IO; namespace DirectoryInfoileio { public partial class Form1 : Form { public Form1() { InitializeCompo nent(); } private void Form1_ Load(object sender, EventArgs e) { DirectoryInfo dirin fo = new DirectoryInfo(@”My Docu mentsPersonaldeneme”); dirinfo.Create(); } private void button1_ Click(object sender, EventArgs e) { DirectoryInfo dirin fo = new DirectoryInfo(@”My Docu mentsPersonaldeneme”); dirinfo. CreateSubdirectory(textBox1. Text); MessageBox. Show(textBox1.Text + “ isimli alt dizin oluşturuldu”); } private void button2_ Click(object sender, EventArgs e) { DirectoryInfo dirin fo = new DirectoryInfo(@”My Docu mentsPersonaldeneme”); foreach (DirectoryIn fo info in dirinfo.GetDirectori es()) { listBox1.Items. Add(info.Name); } } private void menuItem1_ Click(object sender, EventArgs e) { MessageBox. Show(“DirectoryInfo sınıfı ile IO işlemleri...”); } private void menuItem2_ Click(object sender, EventArgs e) { Application.Exit(); } } } Uygulamanın çalıştırılmış çıktısı Uygulamayı üç bölümde incelersen bi- rinci bölüm form’un load event’inde yani form yüklenirken yapılan işlemler, alt dizin oluştur butonuna basınca yapı- lan işlemler ve alt dizinleri listele buto- nuna basılınca yapılan işlemler olarak üç bölümde inceleyebiliriz. Form1_Load olayında da gördüğünüz gibi form yüklenirken My Documents Personal altında deneme isimli bir dizin oluşturuluyor. Uygulamanın geri kalan kısmındaki işlemlerde bu dizin üstünden gerçekleştirilmiştir. Form1_Load olayında DirectoryInfo sını- fını türetirken bir dizin ismi belirledik. Di- rinfo.create metodu ile ise bu dizin oluş- turuldu. Alt dizin oluştur butonunda ise, yine be- lirlediğimiz dizin üstünde çalışmaya baş- ladık. CreateSubDirectory metodu ile ise textbox’da kullanıcıdan alınan isimle bir dizin oluşturuldu. Foreach döngüsü yar- dımıyla ise GetDirectories() metodunu kullanarak gösterdiğimiz dizinin altdizin- lerini listeleyebildik. Listeyi ise bir listbox aracılığıyla kullanıcıyla paylaşmış olduk. Bu ay dosyalarla okuma yazma işlemle- rini yapmak için dizinlerle ilgili işlemle- rimizden bahsettik. Yeri geldiği zaman daha ince noktalara da değineceğim. Dizinler okuma yazma işlemlerini yap- mak için ilk adım olmak durumundadır- lar. Eğer dizin işlemlerine hakim değilsek diğer dosya durumlarına da hakim ola- mayız.  3 mobil programlama_mayis.indd 116mobil programlama_mayis.indd 116 26.04.2010 19:1226.04.2010 19:12